轉自:http://wenku.baidu.com/view/73205cc42cc58bd63186bd4e.html
服務器每天有不計其數針對ssh的密碼猜解,雖然加了密碼錯誤三次後禁止IP的模塊設置,但是實際應用仍然不是很完美,索性將服務器認證方式換成密鑰認證了,就是不能再用密碼登錄,除非有密鑰。這樣猜解就沒有意義了,寫下來共享一下吧。
首先確保服務器ssh服務已啓動,用戶能夠正常登錄,然後配置客戶端,過程如下:
一、先用自已的用戶登錄到服務器,比如我用 uplinux 登錄到服務器
二、運行 SSH Secure Shell 工具中的“Secure Shell Client ”,選擇菜單中“Edit”-> “Setting”,在打開的窗口左側依次選擇“Global Settings”->“User Authentication”->“Keys”,然後看到如下畫面:
三、點擊“Generate New”,在打開的窗口中點擊“Next”看到如下圖:
選擇 “RSA”和 “1024”,然後點擊“Next”,稍等一會,會計算一個密鑰。
四、看到如下圖,參照圖片中的內容進行填寫,比如 uplinux 用戶可以填寫成 uplinux_key,這個無所謂,不要跟其它key重複就好了。
在Passphrase中填寫一個密碼,這個是保護本地私有密鑰的密碼,也就是說,即使有人盜用了你的計算機,沒有這個密碼,也仍然不能使用你的密鑰。注意,這個不是服務器上用戶密碼。
填寫完畢點擊“Next”
五、填寫完畢後,密鑰就生成完了,點擊完成。
六、選擇剛纔生成的密鑰,點擊“Upload”,會彈出如下窗口:
參考窗口中的內容填寫,注意名稱是自動出現的,不用管。第二項需要修改爲 .ssh ,第三項不用管。
然後點“Upload”
注意:這個時候應該是已經登錄的狀態,不然公鑰傳不上去。
七、如果沒有提示錯誤,那麼公鑰就自動被上傳到服務器上去了。
接着要做一些手工的操作,在命令行界面裏,輸入如下命令: (左腳註意前面的$符號不是命令,只是個提示符)
$ cd .ssh/
$ ls -l
會至少看到你剛纔生成的 .pub 公鑰文件和一個 authorization 認證配置文件。如果沒有你剛纔起的名子的文件,那就有問題,檢查上面的過程。
接着做下面的命令,假設我生成的是 uplinux_key.pub
$ ssh-keygen -i -f uplinux_key.pub >> authorized_keys
然後,刪除剛纔生成的文件:
$ rm -rf uplinux_key.pub
$ rm -rf authorization
再接着,修改文件權限。(注意,本步驟很重要)
$ chmod 600 *
$ cd ../
$ chmod 700 .ssh
八、退出 SSH 工具。重新發起一次鏈接,參照下圖進行選擇:
注意最後一項“Public Key”
九、點擊鏈接,然後會看到下面的提示:
這個提示就是要你輸入剛纔設置的“Passphrase”密碼,輸入正確後,就會登錄到系統中了
十,客戶端配置最後一步,也最重要:
本地會保存你生成的私鑰和公鑰,剛纔所上傳上去的就是公鑰。
每次登錄,軟件都會自動拿本地的私鑰和遠端的公鑰做加密運算,然後才能登錄。
所以,我們必須保護我們本地的密鑰文件,這個就象招商銀行網上銀行專業版的數字證書一樣,丟了就不能再次登錄了。
密鑰文件存放在本地目錄:
C:Documents and SettingsuplinuxApplication DataSSHUserKeys
把這個目錄裏的文件備份出來,壓縮成帶密碼的壓縮包,弄到手機裏或者U盤裏,以備重做系統後可用。
十一、服務器端關閉密碼登錄:
使用root用戶編輯/etc/ssh/sshd_config文件,將PasswordAuthentication yes改爲PasswordAuthentication no
保存文件並退出,重新啓動sshd服務。
至此之後,服務器不再接受密碼認證,客戶端必須使用密鑰才能正常登錄。不過一定要注意密鑰不要搞丟了,不然自已也不能遠程登錄系統了。