linux – SSH密钥验证不断要求输入密码

前端之家收集整理的这篇文章主要介绍了linux – SSH密钥验证不断要求输入密码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图通过SSH密钥设置从ServerA(SunOS)到ServerB(一些使用键盘交互式登录自定义 Linux)的访问.作为概念验证,我能够在2台虚拟机之间完成.现在,在我的现实生活场景中它不起作用.

我在ServerA中创建了密钥,将它们复制到ServerB,将chmod’d .ssh文件夹复制到ServerA,B上的700.

这是我得到的日志.

  1. debug1: SSH2_MSG_KEXINIT sent
  2. debug1: SSH2_MSG_KEXINIT received
  3. debug1: kex: server->client aes128-ctr hmac-md5 none
  4. debug1: kex: client->server aes128-ctr hmac-md5 none
  5. debug1: Peer sent proposed langtags,ctos:
  6. debug1: Peer sent proposed langtags,stoc:
  7. debug1: We proposed langtags,ctos: en-US
  8. debug1: We proposed langtags,stoc: en-US
  9. debug1: SSH2_MSG_KEX_DH_GEX_REQUEST sent
  10. debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
  11. debug1: dh_gen_key: priv key bits set: 125/256
  12. debug1: bits set: 1039/2048
  13. debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
  14. debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
  15. debug1: Host 'XXX.XXX.XXX.XXX' is known and matches the RSA host key.
  16. debug1: Found key in /XXX/.ssh/known_hosts:1
  17. debug1: bits set: 1061/2048
  18. debug1: ssh_rsa_verify: signature correct
  19. debug1: newkeys: mode 1
  20. debug1: set_newkeys: setting new keys for 'out' mode
  21. debug1: SSH2_MSG_NEWKEYS sent
  22. debug1: expecting SSH2_MSG_NEWKEYS
  23. debug1: newkeys: mode 0
  24. debug1: set_newkeys: setting new keys for 'in' mode
  25. debug1: SSH2_MSG_NEWKEYS received
  26. debug1: done: ssh_kex2.
  27. debug1: send SSH2_MSG_SERVICE_REQUEST
  28. debug1: got SSH2_MSG_SERVICE_ACCEPT
  29. debug1: Authentications that can continue: publickey,keyboard-interactive
  30. debug1: Next authentication method: publickey
  31. debug1: Trying private key: /XXXX/.ssh/identity
  32. debug1: Trying public key: /xxx/.ssh/id_rsa
  33. debug1: Authentications that can continue: publickey,keyboard-interactive
  34. debug1: Trying private key: /xxx/.ssh/id_dsa
  35. debug1: Next authentication method: keyboard-interactive
  36. Password:
  37. Password:

自从定制的专有Linux以来,ServerB的行动非常有限.

可能会发生什么?

编辑与答案:

问题是我没有在sshd_config中启用这些设置(请参阅接受的答案)并且在将密钥从ServerA粘贴到ServerB时,它会将密钥解释为3个单独的行.

我做的是,如果你不能像我一样使用ssh-copy-id.将您的密钥的第一行粘贴到“ServerB”authorized_keys文件中,不包含最后2个字符,然后键入第1行中缺少的字符和第2行中的第一行,这将阻止在第一行和第二行之间添加“新行”.第二行的关键.重复3d线.

解决方法

我不认为您的密钥已被正确复制,如果您有ssh-copy-id可用,我建议您使用它.
  1. $ssh-copy-id user@remote_server
  2. Password:

输入密码后,您的SSH密钥将被复制,您应该只需ssh而无需再次提供密码.

还要检查ServerB上的SSH配置并检查一些事项.

  1. $vi /etc/ssh/sshd_config

另一件事是检查这些设置:

  1. RSAAuthentication yes
  2. PubKeyAuthentication yes
  3. AuthorizedKeysFile %h/.ssh/authorized_keys

AuthorizedKeysFile的值是您需要粘贴公共ssh密钥的位置.

您可以使用以下命令收集SSH-Key信息:ssh-add -L

更新

当ssh-copy-id不存在时,您可以采用旧方法

  1. $cat ~/.ssh/id_rsa.pub | ssh user@remote_host 'cat >> /home/user/.ssh/authorized_keys'

猜你在找的Linux相关文章