天天看點

使用SSH密鑰方式登入Linux

伺服器每天有不計其數針對ssh的密碼猜解,雖然加了密碼錯誤三次後禁止IP的子產品設定,但是實際應用仍然不是很完美,索性将伺服器認證方式換成密鑰認證了,就是不能再用密碼登入,除非有密鑰。這樣猜解就沒有意義了,寫下來共享一下吧。

首先確定伺服器ssh服務已啟動,使用者能夠正常登入,然後配置用戶端,過程如下:

一、先用自已的使用者登入到伺服器,比如我用 uplinux 登入到伺服器

二、運作 SSH Secure Shell 工具中的“Secure Shell Client ”,選擇菜單中“Edit”-> “Setting”,在打開的視窗左側依次選擇“Global Settings”->“User Authentication”->“Keys”,然後看到如下畫面: 

使用SSH密鑰方式登入Linux

三、點選“Generate New”,在打開的視窗中點選“Next”看到如下圖:

選擇 “RSA”和 “2048”,然後點選“Next”,稍等一會,會計算一個密鑰。

使用SSH密鑰方式登入Linux

四、看到如下圖,參照圖檔中的内容進行填寫,比如 uplinux 使用者可以填寫成 uplinux_key,這個無所謂,不要跟其它key重複就好了。

使用SSH密鑰方式登入Linux

在Passphrase中填寫一個密碼,這個是保護本地私有密鑰的密碼,也就是說,即使有人盜用了你的計算機,沒有這個密碼,也仍然不能使用你的密鑰。注意,這個不是伺服器上使用者密碼。

填寫完畢點選“Next”

五、填寫完畢後,密鑰就生成完了,點選完成。然後看到如下畫面:

使用SSH密鑰方式登入Linux

六、選擇剛才生成的密鑰(我裡面有兩個,你們不用理會),點選“Upload”,會彈出如下視窗:

使用SSH密鑰方式登入Linux

參考視窗中的内容填寫,注意名稱是自動出現的,不用管。第二項需要修改為 .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”

使用SSH密鑰方式登入Linux

九、點選連結,然後會看到下面的提示:

使用SSH密鑰方式登入Linux

這個提示就是要你輸入剛才設定的“Passphrase”密碼,輸入正确後,就會登入到系統中了

十,用戶端配置最後一步,也最重要:

本地會儲存你生成的私鑰和公鑰,剛才所上傳上去的就是公鑰。

每次登入,軟體都會自動拿本地的私鑰和遠端的公鑰做加密運算,然後才能登入。

是以,我們必須保護我們本地的密鑰檔案,這個就象招商銀行網上銀行專業版的數字證書一樣,丢了就不能再次登入了。

密鑰檔案存放在本地目錄:

C:\Documents and Settings\uplinux\Application Data\SSH\UserKeys

把這個目錄裡的檔案備份出來,壓縮成帶密碼的壓縮包,弄到手機裡或者U盤裡,以備重做系統後可用。

十一、伺服器端關閉密碼登入:

繼續閱讀