1. 程式人生 > >Linux SSH密匙登錄

Linux SSH密匙登錄

配置文件 生成 設置 騰訊雲 key zed 搜索 pty gpo

最近整了一個騰訊雲服務器, 沒事倒騰倒騰。 說來慚愧做php程序員也好幾年了,一直都是寫寫代碼很少直接操作服務器,所以很多linux知識對我來說都挺新鮮的。一般碰到不會的問題都是通過網頁搜索來解決。這不,今天登陸服務器又碰到問題了,登陸進去後發現一條消息:There are 2906 failed login attemps since the last successful login. 我去一個嚇了個半死,難道幾天不見就有黑客攻擊我的服務器嗎。頓時心裏一陣懵逼,趕緊尋找解決方案,網上一搜發現大家都普遍碰到過這個問題,可以通過在服務器生成一對公鑰和私鑰來解決。

技術分享圖片

那下面我們就用系統的ssh-keygen工具來生成公鑰和私鑰:

step 1: 輸入命令 ssh-keygen

Enter file in which to save the key: 之後會提示密匙保存的路徑,我們直接按Enter鍵就好,不用修改。

Enter passphrase (empty for no passphrase): 接著系統提示你輸入passphrase密碼短語,為了安全起見我們最好設置一下,提醒一下密碼短語長度需大於4,否則無效

設置完密碼短語之後公鑰私鑰就生成好了,總共要兩個文件id_rsa,id_rsa.pub,保存到/root/.ssh目錄下。

技術分享圖片

step 2: 修改文件/root/.ssh/authorized_keys

這個文件一開始是個空文件,我們要把剛剛生成的公鑰復制到這個文件。使用這個命令:cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys

接下來我們要開始修改ssh配置文件了,讓ssh程序知道驗證文件保存在哪

step 3: 修改ssh配置文件/etc/ssh/sshd_config

為保險起見,修改之前我們先備份一下這個文件:cp /etc/ssh/sshd_config /etc/ssh/sshd_config_backup

現在可以修改文件了,

找到AuthorizedKeysFile行,把後面的值改為上一步authorized_keys文件的路徑。因為我們是默認安裝的,可以不用修改。如果不是我們就改成/root/.ssh/authorized_keys就好了。

找到RSAAuthentication和PubKeyAuthentication選項,都改為yes。

step 4: 重啟ssh服務

我們輸入命令: service ssh restart

就OK~

step 5: 下載私鑰文件到本機上

用ftp或sftp工具下載生成的私鑰文件/root/.ssh/id_rsa到本機,以便登錄的時候使用。

step 6: 在本機用windows程序puTTYgen生成登錄用的putty密匙文件

在本機運行puTTYgen程序,這個程序應該是隨putty一並安裝的。沒有的話就自行安裝吧,我也不是很了解。打開程序, 點擊 Actions > Load,選擇剛才從服務器下載的私鑰文件。不過選擇的時候這個文件可能識別不了,我們點擊All Files(*.*)的選項就行了~ 然後點擊save private key生成putty可以識別的私鑰文件。

step 7: 用私鑰文件實現ssh登錄

打開putty程序,在目錄Connection > SSH > Auth下選擇上一步通過puTTYgen生成的私鑰文件就可以登錄了。登錄的過程中系統會提示你輸入生成公鑰私鑰時設置的密碼短語passphrase。到這裏我們就差最後一步禁用root用戶和禁用密碼登錄了。

step 8: 禁用root用戶和密碼登錄

編輯ssh配置文件/etc/ssh/sshd_config文件,找到PermitRootLogin選項改為yes, 就可以禁用root用戶登錄了。之後找到PasswordAuthentication選項改為no,就實現了禁止使用用戶密碼登錄了。可以說通過禁用root用戶和密碼登錄,我們再也不用擔心被黑客破解SSH密碼登錄了。

寫的比較啰嗦,各位見諒~

參考: https://www.cnblogs.com/handongyu/p/6386789.html

Linux SSH密匙登錄