在阿里雲有購買一臺服務器,一直都使用口令的認證方式。雖然一直沒有出現什麼問題(阿里雲有云盾),但總以爲這種登錄方式欠妥。由於公司通常都用密鑰認證的登錄方式。因而今天也把本身服務器的登錄方式換成了祕鑰的登錄方式。整個過程沒有難點,寫這個blog主要是記錄下。git
使用密鑰認證分3步:
shell
生成密鑰安全
放置密鑰、配置ssh服務器
配置ssh客戶端使用密鑰登錄 ssh
能夠經過上面任意一種方式生成密鑰;阿里雲
完成以後把生成的密鑰保存爲文件spa
保存爲 id_rsa.pub (公鑰)rest
運行命令 ssh-keygen -t -rsa
code
使用到Xshell登陸到服務器,進入到「/root/.ssh/」目錄blog
將id_rsa.pub發送到服務器,而後運行以下命令,將公鑰(Public Key)導入到「authorized_keys」文件:
[root@yearnfar ~]# cd /root/.ssh/ [root@yearnfar .ssh]# cat id_rsa.pub >> authorized_keys [root@yearnfar .ssh]# chmod 600 authorized_keys [root@yearnfar .ssh]# chown yearnfar:yearnfar authorized_keys # 用戶、用戶組改爲本身的
驗證登錄是否正確,在ssh客戶端配置登錄方式由password改成publickey,文件使用生成的公鑰文件便可
若是登錄失敗,請檢查ssh配置文件(/etc/ssh/sshd_config)中的PubkeyAuthentication是否爲yes。
若是驗證成功的話就能夠關閉密碼登錄方式了,編輯/etc/ssh/sshd_config,將PasswordAuthentication改成no,ChallengeResponseAuthentication改成no
重啓sshd(service sshd restart)
PS:
1. 要確保目錄 .ssh 屬於當前用戶而且權限是700
2. 確保文件 authorized_keys 屬於當前用戶而且權限是600
/home/user 目錄也必須是700!!!若是你用root改過它權限,也會致使登錄不了
使用密鑰認證登錄,不要去設置root的密鑰認證,能夠經過其餘用戶使用su或者sudo得到超級管理員權限