伺服器每天有不計其數針對ssh的密碼猜解,雖然加了密碼錯誤三次後禁止IP的子產品設定,但是實際應用仍然不是很完美,索性将伺服器認證方式換成密鑰認證了,就是不能再用密碼登入,除非有密鑰。這樣猜解就沒有意義了,寫下來共享一下吧。
首先確定伺服器ssh服務已啟動,使用者能夠正常登入,然後配置用戶端,過程如下:
一、先用自已的使用者登入到伺服器,比如我用 uplinux 登入到伺服器
二、運作 SSH Secure Shell 工具中的“Secure Shell Client ”,選擇菜單中“Edit”-> “Setting”,在打開的視窗左側依次選擇“Global Settings”->“User Authentication”->“Keys”,然後看到如下畫面:
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiInBnauEDN5YDN5UTMy8CX4AjMxAjMvwFduVWboNWY0RXYvwVbvNmLvR3YxUjL0M3Lc9CX6MHc0RHaiojIsJye.jpg)
三、點選“Generate New”,在打開的視窗中點選“Next”看到如下圖:
選擇 “RSA”和 “2048”,然後點選“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 Settings\uplinux\Application Data\SSH\UserKeys
把這個目錄裡的檔案備份出來,壓縮成帶密碼的壓縮包,弄到手機裡或者U盤裡,以備重做系統後可用。
十一、伺服器端關閉密碼登入: