EC2实例test用户SSH报Permission denied(publickey)问题求助
解决EC2实例test用户SSH公钥认证失败问题
排查步骤及解决方案
- 检查test用户家目录权限
用ubuntu用户登录实例后,先查看test用户家目录的权限:
ls -ld /home/test
权限必须为drwx------(即700),如果不符合,执行以下命令修正:
sudo chmod 700 /home/test
家目录权限过松会被SSH服务判定为不安全,直接拒绝公钥认证。
- 检查test用户的.ssh目录及authorized_keys文件
- 确认.ssh目录存在并设置正确权限:
如果目录不存在,创建并设置权限:ls -ld /home/test/.sshsudo mkdir /home/test/.ssh sudo chmod 700 /home/test/.ssh - 检查authorized_keys文件:
先查看文件是否存在及权限:
文件权限必须是ls -l /home/test/.ssh/authorized_keys-rw-------(即600),如果文件不存在,将你使用的pem对应的公钥内容复制进去(可以先把pem文件的公钥导出:ssh-keygen -y -f /path/to/your/key.pem > key.pub,再复制):
之后修正权限:sudo cat /path/to/key.pub >> /home/test/.ssh/authorized_keyssudo chmod 600 /home/test/.ssh/authorized_keys - 核心要点:确保.ssh目录和authorized_keys文件的所属用户是test,否则SSH服务会拒绝读取:
sudo chown -R test:test /home/test/.ssh
- 验证SSH服务配置(可选)
检查sshd_config中是否开启了公钥认证:
sudo cat /etc/ssh/sshd_config | grep -i PubkeyAuthentication
确保输出为PubkeyAuthentication yes,如果是no,修改配置后重启SSH服务:
sudo systemctl restart sshd
- 重新测试连接
完成以上步骤后,用test用户重新尝试SSH连接,即可正常登录。
内容的提问来源于stack exchange,提问作者Sid
相关产品推荐
相关产品推荐

