无法使用 SSH Key 访问服务器
我们的服务器是阿里云的 ECS,在创建实例的时候选择的是通过密钥对来进行登录的,但是最近出现用私钥无法登录的情况。因为当时手头上的事情比较紧急,所以先是在阿里云控制台修改了登录密码,然后就使用密码进行登录,但是用密码登录安全性还是不如 SSH Key 的。
于是等手头的事情忙完了以后,我便开始尝试在阿里云的控制台重新为服务器绑定密钥对,结果依然无法登录。于是我就自己在本地生成公私钥,然后将公钥通过 ssh-copy-id 命令拷贝到服务器上了。
并且将服务器上的 etc/ssh/sshd_config
文件中的 PasswordAuthentication
修改为 no
。
本以为这样就可以连接上了,但是当我尝试登录的时候却出现了如下提示:
$ ssh -i ~/.ssh/id_rsa [email protected]
[email protected]: Permission denied (publickey, gssapi-keyex,gssapi-with-mic).
经过多翻尝试,换了各种类型的 Key 依旧无果,然后在网上看到了一片帖子,说可能是用户的家目录被加密了,导致 SSH Key 验证失败。
抱着死马当活马医的心态,将 /root/.ssh/authorized_keys
文件拷贝到了 /etc/ssh/authorized_keys
,然后修改 /etc/ssh/sshd_config
的 AuthorizedKeysFile
项,将其指向到 /etc/ssh/authorized_keys
。
然后使用如下命令重启 SSHD 服务:
$ sudo systemctl restart sshd
再次尝试连接服务器,终于成功连接上了服务器。
I hope this is helpful, Happy hacking…