ssh putty 免密碼登入
發表於 : 2010-08-10 11:47:53
http://www.josephj.com/article/putty-key/
你在使用 PuTTY 嗎? 如果你還在每天打密碼做登入,那實在是遜掉了。這篇文章就是要教你怎麼設定 PuTTY 免登入!
一步一步教到會
如果你想要瞭解密碼免登入的原理的話,請參考徹底瞭解 SSH 的免密碼登入。
步驟 1. 產生金鑰
你可以從 PuTTY 的下載頁找到 PuTTYgen 這個金鑰產生器、然後產生所需的公私鑰。
但我個人建議比較好的做法還是找一台 *nix 的主機,因為這樣的方式才可以做一次、用在所有的地方。
如何做請參考SSH 免密碼登入的步驟 1。
步驟 2. 從主機上取得私鑰
如上所述,我們已經在主機上製作完畢公私鑰、且將公鑰全部放進 authorized_keys,
接著就可以利用 WinSCP 等軟體把檔案從主機上抓回來(identity, id_rsa 與 id_dsa)。
建議在桌面上建立一個叫 unix-keys 的目錄。
步驟 3. 更改私鑰名稱
接著我們必需將所有私密金鑰的副檔名改為 ppk。
步驟 4. 產生 PuTTY 專用的私密金鑰
請到 PuTTY 下載頁把 PuTTYgen.exe 抓回來,執行後你會看到這樣的程式畫面:
a. 首先我們先按下 Load 的按鈕,把一個剛改副檔名的 ppk 私密金鑰讀取進來,如下圖,他會要求你輸入 Passphrase。
b. 接著請選擇金鑰的類型,依照你選擇檔案的不同,如果是 identity.ppk,請選 SSH-1 (RSA)、
id_rsa.ppk 請選 SSH-2 RSA、id_dsa.ppk 選 SSH-2 DSA。
c. 再來就是將處理好的私鑰做存檔,我會在 C:\> 底下開一個叫 ssh-keys 的目錄存放這些私鑰。
三隻 .ppk 的金鑰都需要照上面的順序產出才行喔!
步驟 5. 設定 PuTTY 的自動對應
自動對應有兩種方法可用,第一種是透過 PuTTY Configuration、第二種是透過 Pageant.ext。
a. 方法一:透過 PuTTY Configuration
在第一個畫面 (Session),請點選你要設定的連線,再按一下旁邊的 Load,就可以把相關組態檔讀取進來。
點選 Connection > Data,在 Auto-login username 填寫你的使用者名稱。
在 Connection > SSH > Auth 中的 Private key file for authentication,選擇適合此主機的金鑰(請參考徹底瞭解 SSH 的免密碼登入)
我們可以發現,這樣的設定有點麻煩,一個主機得設定一遍、而且還得自行判斷適合的金鑰類型。而最重要的一點:免密碼登入,這樣設定並沒有辦法幫我們解決,因你每次還是得自己打 Passphrase。
b. 方法二:利用 Pageant
上面講的麻煩,用 Pageant.exe( 請到 PuTTY 下載頁把 Pageant.exe 抓回來)可以避免掉大半。你只需一次把三個私鑰匯入即可:
再加入的過程中,它會詢問你 Passphrase,如果三個都相同的話,你只要輸入一次即可。
發現問題
看起來 Pageant 是一個不錯的解決方案,但當筆者關機後再開,發現 Pageant.exe 即使有設定為自動啟動,剛剛加的私鑰就全都不見了、且 Passpharse 也得再輸入一次,實在不是很貼心,所以我就啟動時自動執行了下面的 Script:
"C:\Program Files\PuTTY\pageant.exe" c:\ssh-keys\identity.ppk c:\ssh-keys\id_rsa.ppk c:\ssh-keys\id_dsa.ppk
只要開一個新的文字檔、並存成副檔名為 .bat 的即可執行。我會複製一個捷徑放入開始 > 程式集 > 啟動,讓此 Script 一登入就執行。
以後你每次登入,都會自動跳出要求你輸入 Passphrase 的視窗,以後便暢行無阻了 :)
你在使用 PuTTY 嗎? 如果你還在每天打密碼做登入,那實在是遜掉了。這篇文章就是要教你怎麼設定 PuTTY 免登入!
一步一步教到會
如果你想要瞭解密碼免登入的原理的話,請參考徹底瞭解 SSH 的免密碼登入。
步驟 1. 產生金鑰
你可以從 PuTTY 的下載頁找到 PuTTYgen 這個金鑰產生器、然後產生所需的公私鑰。
但我個人建議比較好的做法還是找一台 *nix 的主機,因為這樣的方式才可以做一次、用在所有的地方。
如何做請參考SSH 免密碼登入的步驟 1。
步驟 2. 從主機上取得私鑰
如上所述,我們已經在主機上製作完畢公私鑰、且將公鑰全部放進 authorized_keys,
接著就可以利用 WinSCP 等軟體把檔案從主機上抓回來(identity, id_rsa 與 id_dsa)。
建議在桌面上建立一個叫 unix-keys 的目錄。
步驟 3. 更改私鑰名稱
接著我們必需將所有私密金鑰的副檔名改為 ppk。
步驟 4. 產生 PuTTY 專用的私密金鑰
請到 PuTTY 下載頁把 PuTTYgen.exe 抓回來,執行後你會看到這樣的程式畫面:
a. 首先我們先按下 Load 的按鈕,把一個剛改副檔名的 ppk 私密金鑰讀取進來,如下圖,他會要求你輸入 Passphrase。
b. 接著請選擇金鑰的類型,依照你選擇檔案的不同,如果是 identity.ppk,請選 SSH-1 (RSA)、
id_rsa.ppk 請選 SSH-2 RSA、id_dsa.ppk 選 SSH-2 DSA。
c. 再來就是將處理好的私鑰做存檔,我會在 C:\> 底下開一個叫 ssh-keys 的目錄存放這些私鑰。
三隻 .ppk 的金鑰都需要照上面的順序產出才行喔!
步驟 5. 設定 PuTTY 的自動對應
自動對應有兩種方法可用,第一種是透過 PuTTY Configuration、第二種是透過 Pageant.ext。
a. 方法一:透過 PuTTY Configuration
在第一個畫面 (Session),請點選你要設定的連線,再按一下旁邊的 Load,就可以把相關組態檔讀取進來。
點選 Connection > Data,在 Auto-login username 填寫你的使用者名稱。
在 Connection > SSH > Auth 中的 Private key file for authentication,選擇適合此主機的金鑰(請參考徹底瞭解 SSH 的免密碼登入)
我們可以發現,這樣的設定有點麻煩,一個主機得設定一遍、而且還得自行判斷適合的金鑰類型。而最重要的一點:免密碼登入,這樣設定並沒有辦法幫我們解決,因你每次還是得自己打 Passphrase。
b. 方法二:利用 Pageant
上面講的麻煩,用 Pageant.exe( 請到 PuTTY 下載頁把 Pageant.exe 抓回來)可以避免掉大半。你只需一次把三個私鑰匯入即可:
再加入的過程中,它會詢問你 Passphrase,如果三個都相同的話,你只要輸入一次即可。
發現問題
看起來 Pageant 是一個不錯的解決方案,但當筆者關機後再開,發現 Pageant.exe 即使有設定為自動啟動,剛剛加的私鑰就全都不見了、且 Passpharse 也得再輸入一次,實在不是很貼心,所以我就啟動時自動執行了下面的 Script:
"C:\Program Files\PuTTY\pageant.exe" c:\ssh-keys\identity.ppk c:\ssh-keys\id_rsa.ppk c:\ssh-keys\id_dsa.ppk
只要開一個新的文字檔、並存成副檔名為 .bat 的即可執行。我會複製一個捷徑放入開始 > 程式集 > 啟動,讓此 Script 一登入就執行。
以後你每次登入,都會自動跳出要求你輸入 Passphrase 的視窗,以後便暢行無阻了 :)