由於工作需要,經常要從 Windows 主機訪問遠端 Ubuntu 伺服器,每次輸入帳號和老長的密碼,感覺很麻煩,於是參考網上的教程簡單的設定了一下就能自動登陸遠程主機了,非常的方便。
雖然 Putty 也提供了 puttygen.exe 產生公/密鑰,但是和 Linux 主機產生的 KEY 格式不同,需要手工修改格式,所以採用 Linux 主機自己產生 KEY 的方式。
首先登陸到 Linux 主機,具體過程如下:
1. 產生公開金鑰和密鑰
複製代碼 代碼如下:
verdana@hostname:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/verdana/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/verdana/.ssh/id_rsa.
Your public key has been saved in /home/verdana/.ssh/id_rsa.pub.
The key fingerprint is:
51:51:da:44:28:b5:83:de:d2:1e:60:4f:81:c9:f1:1a verdana@hostname.com
注意 passphrase 留空。
2. 將公開金鑰內容追加到 authorized_keys
複製代碼 代碼如下:
# 若 authorized_keys 已經存在,則跳過 touch 建立檔案這一步
verdana@hostname:~/.ssh$ touch authorized_keys
verdana@hostname:~/.ssh$ cat id_rsa.pub >> authorized_keys
3. 下載密鑰並轉換為 Putty 可識別的格式
Putty 無法識別 Linux 主機產生的的密鑰,所以需要用 puttygen.exe 轉換一下。
a) 使用 FTP 軟體或者其它方式將產生的密鑰 id_rsa 拷貝到用戶端主機,這裡我的用戶端是 Vista 系統
b) 開啟puttygen.exe,點擊菜單上的:轉換->匯入密鑰->儲存密鑰(如:id_rsa.ppk),密鑰即轉換完成,這裡不設定密碼保護
4. 設定 Putty
開啟 Putty
a) 會話,主機名稱填入:user@remote-host,user 是你的 Linux 主機登陸名稱,remote-host 是 IP 或者遠程主機網域名稱,比如: root@phpvim.net。
b) 串連->SSH->認證->瀏覽,選擇剛才轉換後的密鑰(id_rsa.ppk),之後儲存會話即可。
5. 使用 Cygwin?
如果使用的 Cygwin 的 ssh 登入遠端伺服器的話,只需要把第3步產生的密鑰 id_rsa (無需任何轉換)拷貝至 Cygwin 使用者的 .ssh 目錄即可。