轉載 https://blog.csdn.net/langkeziju/article/details/53024031
說明:
一般的密碼方式登錄容易被密碼暴力破解。所以一般我們會將 SSH 的端口設置為默認22以外的端口,或者禁用root賬戶登錄。其實可以通過密鑰登錄這種方式來更好地保證安全。
密鑰形式登錄的原理是:利用密鑰生成器制作一對密鑰——一只公鑰和一只私鑰。將公鑰添加到服務器的某個賬戶上,然后在客戶端利用私鑰即可完成認證並登錄。這樣一來,沒有私鑰,任何人都無法通過 SSH 暴力破解你的密碼來遠程登錄到系統。此外,如果將公鑰復制到其他賬戶甚至主機,利用私鑰也可以登錄。
下面來講解如何在 Linux 服務器上制作密鑰對,將公鑰添加給賬戶,設置 SSH,最后通過客戶端登錄。
實現:
1. 制作密鑰對
首先在服務器上制作密鑰對。首先用密碼登錄到你打算使用密鑰登錄的賬戶,然后執行以下命令:
[root@host ~]$ ssh-keygen <== 建立密鑰對 Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): <== 按 Enter Created directory '/root/.ssh'. Enter passphrase (empty for no passphrase): <== 輸入密鑰鎖碼,或直接按 Enter 留空 Enter same passphrase again: <== 再輸入一遍密鑰鎖碼 Your identification has been saved in /root/.ssh/id_rsa. <== 私鑰 Your public key has been saved in /root/.ssh/id_rsa.pub. <== 公鑰 The key fingerprint is: 0f:d3:e7:1a:1c:bd:5c:03:f1:19:f1:22:df:9b:cc:08 root@host
[root@host ~]$ cd .ssh [root@host .ssh]$ cat id_rsa.pub >> authorized_keys 如此便完成了公鑰的安裝。為了確保連接成功,請保證以下文件權限正確: [root@host .ssh]$ chmod 600 authorized_keys [root@host .ssh]$ chmod 700 ~/.ssh
3. 設置 SSH,打開密鑰登錄功能
編輯 /etc/ssh/sshd_config 文件,進行如下設置:
RSAAuthentication yes
PubkeyAuthentication yes
另外,請留意 root 用戶能否通過 SSH 登錄,默認為yes:
PermitRootLogin yes
當我們完成全部設置並以密鑰方式登錄成功后,可以禁用密碼登錄。這里我們先不禁用,先允許密碼登陸
PasswordAuthentication yes
最后,重啟 SSH 服務:
[root@host .ssh]$ service sshd restart
4. 將私鑰下載到客戶端,如這里的SecureCRT
輸入Hostname,Username,選擇認證方式為PublicKey公鑰認證,選擇剛剛下載下來的id_rsa私鑰文件即可!