SSH问题汇总

SSH agent 登录失败问题

如果当前系统已经启用 SSH agent,对于没有启用证书登录的主机来说,ssh 或者 scp 登录时可能会不提示输入用户名和密码却直接报 Too many authentication failures 错误:

zzm@ZZM-P238:~$ ssh root@192.168.1.199
Received disconnect from 192.168.1.199: 2: Too many authentication failures for root

此时可以:

  • unset SSH_AUTH_SOCK 再登录;
  • ssh 或 scp 登录时增加 -o IdentitiesOnly=yes 参数;
  • 增加服务端 MaxAuthTries 参数(默认为 6)。

证书文件权限问题

SSH 私钥证书文件权限较高时,ssh 命令可能会报如下错误:

WARNING: UNPROTECTED PRIVATE KEY FILE!
Permissions 0644 for 'XXX' are too open.

如果不能修改证书文件权限,可以 sudo 切换为其它用户进行 ssh 连接:

~# sudo -u nobody ssh -i XXX root@IP

支持老的加密方式

可以修改 ssh_config 配置文件或通过命令参数支持老的加密方式:

Host *
    HostkeyAlgorithms +ssh-rsa,ssh-dss
    PubkeyAcceptedAlgorithms +ssh-rsa,ssh-dss
    PubkeyAcceptedKeyTypes +ssh-rsa,ssh-dss