使用一般的密碼方式登錄服務(wù)器的話,容易有密碼泄露和被暴力破解的風(fēng)險(xiǎn)。所以一般會(huì)將 ssh 的端口設(shè)為 22 以外的端口或者禁用 root 賬戶登錄?;蛘撸玫霓k法是,使用密鑰的方式登錄。
設(shè)置使用密鑰登錄的幾個(gè)步驟:
1.在服務(wù)器上制作密鑰對(duì)
先采用密碼登錄的方式登錄服務(wù)器,執(zhí)行以下命令:
[root@host ~]$ ssh-keygen <== 建立密鑰對(duì)
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
密鑰鎖碼在使用私鑰時(shí)必須輸入,這樣就可以保護(hù)私鑰不被盜用。當(dāng)然,也可以留空,實(shí)現(xiàn)無(wú)密碼登錄。
執(zhí)行完上述命令后,在 root 用戶的用戶目錄中會(huì)生成一個(gè).ssh 的隱藏目錄,內(nèi)含兩個(gè)密鑰文件,其中id_rsa為私鑰id_rsa.pub為公鑰。
2.在服務(wù)器安裝公鑰
執(zhí)行以下命令,將剛剛生成 的公鑰 復(fù)制到 authorized_keys,完成公鑰的安裝
[root@host ~]$ cd ~/.ssh
[root@host .ssh]$ cat id_rsa.pub >> authorized_keys
安裝完成后需檢查.ssh 目錄和 authorized_keys 文件的權(quán)限
[root@host .ssh]$ chmod 600 authorized_keys
[root@host .ssh]$ chmod 700 ~/.ssh
3.配置 ssh
編輯 /etc/ssh/sshd_config 文件,添加以下配置項(xiàng)(如果配置過(guò)則更改以下配置項(xiàng)):
RSAAuthentication yes
PubkeyAuthentication yes
同時(shí) ,確保當(dāng)前配置允許 root 用戶登錄:
PermitRootLogin yes
最后,重啟 ssh 服務(wù):
[root@host .ssh]$ service sshd restart
4.下載私鑰
通過(guò) scp 拷貝密鑰到本地當(dāng)前目錄:
scp root@host:/root/.ssh/id_rsa ./
最后,就可以通過(guò)密鑰的方式 ssh 遠(yuǎn)程登錄服務(wù)器了
ssh -i ./id_rsa root@host
如果登錄的時(shí)候報(bào)“Permissions 0644 for './id_rsa' are too open.”,則需要將密鑰文件的權(quán)限進(jìn)行 修改:
chmod 400 ./id_rsa
然后嘗試再次登錄就可以了。