描述:在创建密钥对和发送公钥到远程主机后,再次连接仍然需要密码
排查:
1.权限问题:
请确保该目录的所有者是openapi用户,组是openapi组,权限设置为drwxr-xr-x(即755)
检查用户(openapi)家目录的权限和所有权:
ls -ld /home/openapi
请确保该目录的所有者是openapi用户,组是openapi组,权限设置为drwxr-xr-x(即755)
如果权限设置不正确,请使用以下命令更改:
sudo chown openapi:openapi /home/openapi
sudo chmod 755 /home/openapi
请确保authorized_keys文件和其父目录的权限设置正确,应该是只有该用户才能读写,其他用户没有权限。可以使用以下命令设置权限
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
2.SELinux问题:
如果您的服务器启用了SELinux,请确保authorized_keys文件的安全上下文设置正确。可以直接关闭selinux或者使用以下命令设置安全上下文
关闭:
setenfoce 0
设置安全上下文
restorecon -Rv ~/.ssh
3.SSH配置问题
请检查远程服务器的SSH配置文件(通常为/etc/ssh/sshd_config)是否启用了公钥身份验证。请确保以下行未被注释:
PubkeyAuthentication yes
修改配置后需要重启sshd服务
systemctl restart sshd
4.检查用户(openapi)家目录的权限和所有权
ls -ld /home/openapi
请确保该目录的所有者是openapi用户,组是openapi组,权限设置为drwxr-xr-x(即755)
如果权限设置不正确,请使用以下命令更改:
sudo chown openapi:openapi /home/openapi
sudo chmod 755 /home/openapi
5.以上都没有解决问题,请查看日志文件
仍然无法免密登录,请检查日志文件(通常为/var/log/auth.log或/var/log/secure)以获取更多详细信息。