我创建了一个带有公共ssh密钥的虚拟机。 一旦创建,我就可以使用私有ssh密钥登录:
ssh -i cloud.key ibmcloud@129.41.xxx.xx
在成功登录后,突然尝试使用相同的命令登录时,我被要求输入密码:
$ ssh -i cloud.key ibmcloud@129.41.xxx.xx
ibmcloud@129.41.133.80's password:
你知道为什么会这样吗? 我删除并重新创建了具有相同行为的VM。在成功登录后,它开始要求输入密码。
[已编辑]添加-vv详细信息:
.........
.........
debug2: kex_parse_kexinit: none,zlib@openssh.com
debug2: kex_parse_kexinit: none,zlib@openssh.com
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit:
debug2: kex_parse_kexinit: first_kex_follows 0
debug2: kex_parse_kexinit: reserved 0
debug2: mac_setup: setup umac-64-etm@openssh.com
debug1: kex: server->client aes128-ctr umac-64-etm@openssh.com none
debug2: mac_setup: setup umac-64-etm@openssh.com
debug1: kex: client->server aes128-ctr umac-64-etm@openssh.com none
debug1: sending SSH2_MSG_KEX_ECDH_INIT
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ECDSA 12:05:44:27:ab:c9:98:5f:45:ab:1d:d7:e0:ca:ba:3a
debug1: Host '129.41.xxx.xx' is known and matches the ECDSA host key.
debug1: Found key in /home/xxxx/.ssh/known_hosts:11
debug2: kex_derive_keys
debug2: set_newkeys: mode 1
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug2: set_newkeys: mode 0
debug1: SSH2_MSG_NEWKEYS received
debug1: Roaming not allowed by server
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug2: service_accept: ssh-userauth
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug2: key: cloud.key (0x6000686e0), explicit
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Offering RSA public key: cloud.key
debug2: we sent a publickey packet, wait for reply
debug1: Authentications that can continue: publickey,password
debug2: we did not send a packet, disable method
debug1: Next authentication method: password
谢谢!
答案 0 :(得分:0)
确保命令中没有拼写错误。例如,IP地址中的拼写错误可能会无意中将您指向另一个您的密钥不起作用的VM,并且它将回退到使用密码。如果情况并非如此,那么最好的办法是获取有关为何提示您输入密码的详细信息。请尝试以下命令:
$ ssh -vv -i cloud.key ibmcloud@129.xxx.xxx.xxx
在与VM协商时,将详细描述该命令,并告诉您为什么它绕过您的密钥文件并返回使用密码。如果在尝试此操作后仍然不清楚该行为的原因,请发布上述命令的输出。
答案 1 :(得分:0)
回答我自己的问题....问题是一位同事将主目录权限更改为777,由于某种原因,SSH认为不安全且无法进行身份验证,尽管-vv参数没有说什么关于它。
希望这有助于其他人。
答案 2 :(得分:-1)
ssh ibmcloud@129.xxx.xxx.xxx
那应该有用。如果它不是generate a new ssh key,请使用xclip或pbcopy将其复制到剪贴板,然后将其粘贴到Bluemix中(创建VM>新SSH密钥>导入>粘贴ssh密钥)。