我不是这些盒子的常规管理员,我知道默认可能是禁用了SSH主机密钥.如何启用SSH主机密钥?
更新:我已经在/ etc / ssh / ssd_config中取消注释’PubkeyAuthentication yes’并运行服务重启sshd,但这不起作用.取消注释所有三行(‘RSAAuthentication’,’PubkeyAuthentication’和’AuthorizedKeysFile’),更正〜/ .ssh的权限并再次尝试.仍然没有爱.
当我运行ssh -v user @ host时,在提示输入密码之前和之后的GSS错误之后我会得到以下信息:
debug1: Next authentication method: publickey debug1: Trying private key: /Users/shortname/.ssh/identity debug1: Trying private key: /Users/shortname/.ssh/id_rsa debug1: Trying private key: /Users/shortname/.ssh/id_dsa debug1: Next authentication method: password
更多建议?
另一个更新:〜/和〜/ .ssh /的权限是700.
我一直在运行以创建主机密钥的命令如下:
cat /blah/ssh_keys_for_shortname/id_dsa.pub | ssh -l shortname -o stricthostkeychecking=no -i /blah/ssh_keys_for_shortname/id_dsa host.domain.tld 'cat - >> ~/.ssh/authorized_keys'
当我尝试连接时,我使用:
ssh --verbose -l shortname -o stricthostkeychecking=no -i /blah/ssh_keys_for_shortname/id_dsa host.domain.tld
所以,显然我们正在使用DSA密钥.我已经尝试重命名〜/ .ssh / authorized_keys2,但这没有帮助.
我喜欢将密钥存储在默认位置而不是/ blah / ssh_keys_for_shortname /,但它不受我的控制.
当我观察/var/log/audit/audit.log并尝试连接时,我得到以下内容:
type=CRED_DISP msg=audit(1249426114.642:128): user pid=10589 uid=0 auid=501 ses=14 msg='op=PAM:setcred acct="shortname" exe="/usr/sbin/sshd" (hostname=host.domain.tld,addr=192.168.1.149,terminal=ssh res=success)' type=USER_END msg=audit(1249426114.647:129): user pid=10589 uid=0 auid=501 ses=14 msg='op=PAM:session_close acct="shortname" exe="/usr/sbin/sshd" (hostname=host.domain.tld,terminal=ssh res=success)' type=USER_LOGIN msg=audit(1249426129.524:130): user pid=10633 uid=0 auid=4294967295 ses=4294967295 msg='acct="shortname": exe="/usr/sbin/sshd" (hostname=?,terminal=sshd res=Failed)'
建议?
解决方法
我看到失败的最常见原因是远程authorized_keys文件及其上面的目录的权限.在允许基于密钥的身份验证之前,sshd会执行权限检查;如果不喜欢结果,则不允许进行身份验证.我通常将〜/ .ssh设置为0700,将〜/ .ssh / authorized_keys设置为0600.我相信实际的$HOME也不能有组或世界写,尽管读数很好.
如果仍然无法修复它,下一步是在服务器端进行一些调试:
server$/usr/sbin/sshd -d -p 2222
然后从客户端连接到“debug”服务器:
client$ssh -v user@host -p 2222
您将在服务器上获得有关stderr的大量调试信息.我还没有遇到一个我无法从那里追踪的身份验证问题.