Mac OS下創建自動重連、自動保存密碼登錄的SSH隧道鏈接

創建SSH的Socket隧道鏈接本身其實很簡單,在Mac OS的命令行下面只需要一行就可以了:

ssh -D 7777 [email protected] 參看livid的關於SSH/PAC配置的詳細說明

然而每次都需要密碼,並且超時斷線的時候也需要手工重連,實在是很麻煩的事情,我參考網上的一系列資料拼裝了自己的方案,開機自動鏈接,保存密碼輸入,斷線自動重連。

首先是保存密碼輸入問題,需要創建密鑰,在你的命令行輸入:
local:~ yourname$ ssh-keygen -t rsa

然後依次回車,輸入密碼,這個密碼和SSH的帳號密碼無關。
整個界面看上去類似:
local:~ yourname$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/u/kim/.ssh/id_rsa): 【回車】
Enter passphrase (empty for no passphrase): 【第一次密碼】
Enter same passphrase again: 【第二次密碼】
Your identification has been saved in /u/kim/.ssh/id_rsa.
Your public key has been saved in /u/kim/.ssh/id_rsa.pub.

接下來把密鑰文件傳到你的SSH帳號下:
local:~ yourname$ cd ~/.ssh
local:~ yourname$ cp id_rsa.pub authorized_keys
local:~ yourname$ scp -p ~/.ssh/authorized_keys hrothgar:.ssh/

最後一步會提示你輸入SSH帳號的密碼,不是你剛纔創建密鑰的密碼。
如果最後一步提示錯誤,通常是因爲遠程權限的問題。
你需要用root身份登錄到遠程機器,爲這個SSH帳號創建相關目錄,並且設置權限:

在SSH帳號登錄的Home目錄設置:
root# mkdir .ssh
root# chown username .
root# chrown username .ssh
root# chmod go-w . .ssh

然後重新執行剛纔最後一步。

如果你在Mac OS的用戶名和SSH的帳戶名一致(推薦),那麼你現在可以直接輸入:
$ ssh yourhost.com

系統就會自動提示你輸入剛纔所創建密鑰的密碼(彈出一個對話框,而不是命令行裏的密碼提示),這時,請記得輸入正確的密碼,並且選擇在鑰匙環裏記住該密碼了。這以後你重複使用這個命令,應該就可以自動無縫登錄而不需要任何提示了。

如果你使用不同的帳戶,試試:
ssh [email protected]

如果測試通過,就可以進入最後一步。

OK,最後一步是登錄自動連接和斷線自動重連,本來也可以用各種命令行實現的,但是我發現了一個更好用的東東:SSH Tunnel Manager,你可以下載到最新的2.0版本。

按照以下步驟設置:
1、把程序拖到你的Application目錄,運行;
2、在Dock上右鍵點擊選中“登錄時打開”。
3、單擊程序圖標一次,在主界面點擊“Configuration”打開配置;
4、單擊“+”號創建一個新的連接設置;
5、隨便取一個名字,輸入你的SSH主機名(例如:yourhost.com)和用戶名;
6、點擊Option,選中Auto Connect(自動連接)和Enable Socket Proxy(允許Socket代理),填寫一個沒有被佔用,並且數字大於1500的端口號。

關掉設置按鈕,現在你可以看到在SSH Tunnel Manager的主窗口裏面有你剛纔創建的配置和一個灰色的啓動按鈕,點擊啓動。

最後一步,在你的瀏覽器裏面設置Socket代理到127.0.0.1:你的端口號。
我自己通常用Safari作爲日常瀏覽,Firefox則對所有URL通過代理。

參考資料:
SSH自動登錄保存密碼指南 Getting started with SSH》
以及上文的中文譯稿(非常感謝):《SSH記住密碼,自動登錄
SSH Tunnel Manager軟件下載
chmod,chown命令詳解

轉:http://woooh.com/archives/423.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章