ssh免密登陆失败排查

常见3个原因:

服务器没有启用publickey登陆模式
加密算法问题
文件权限问题
服务器没有启用publickey登陆模式
登陆到服务器,执行sshd -T确认一下:

root@xxx:~# sshd -T | egrep “pubkey”
pubkeyauthentication no
pubkeyacceptedalgorithms [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,[email protected],[email protected],rsa-sha2-512,rsa-sha2-256
pubkeyauthoptions none
pubkeyauthentication no表示没有启用,需要启用一下。修改修改sshd配置文件/etc/ssh/sshd_config

PubkeyAuthentication yes
重启sshd服务:systemctl restart sshd

2. 加密算法问题

自从 OpenSSH 8.3 开始,RSA Key 登录默认被禁用,并被认为不安全。从 Ubuntu 22.04 和 Debian 12 开始,默认就不能用RSA Key登陆了。

解决办法一:

修改服务器端的/etc/ssh/sshd_config配置文件(注意不要改到/etc/ssh/ssh_config了)

vim /etc/ssh/sshd_config

# 添加配置
PubkeyAcceptedKeyTypes +ssh-rsa

# 重启 SSH
systemctl restart sshd

设置后,可以查得到:
root@xxx:~# sshd -T | egrep “pubkey”
pubkeyauthentication yes
pubkeyacceptedalgorithms [email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],[email protected],ssh-ed25519,ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,[email protected],[email protected],rsa-sha2-512,rsa-sha2-256,ssh-rsa

解决办法二:
客户端在生成密钥对时,使用更加安全的算法
ssh-keygen -t ed25519
3. 文件权限问题

远程服务器上的~/.ssh目录和~/.ssh/authorized_keys文件需要正确的权限设置。

~/.ssh目录应设置为700,~/.ssh/authorized_keys文件应设置为600。

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
最后,如果是新版本的mac系统,需要加载一下新创建的key:

cd ~/.ssh
ssh-add –apple-use-keychain id_rsa

原文链接:https://sharlytic.com/2023/12/12/ssh-publickey/,转载请注明出处。
0
没有账号?注册  忘记密码?