ssh-keygen - 生成、管理和轉換認證密鑰

轉自: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服務。

至此之後,服務器不再接受密碼認證,客戶端必須使用密鑰才能正常登錄。不過一定要注意密鑰不要搞丟了,不然自已也不能遠程登錄系統了。

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