ssh到qemu虚拟机来宾而不输入密码

时间:2012-09-24 21:12:55

标签: ssh passwords qemu

现在我想从客户机运行一个脚本,该脚本将ssh到主机上的虚拟机guest并开始运行shell命令。我不希望被提示输入密码。

首先,我尝试将其连接到主机。我将.ssh文件夹中的文件id_rsa.pub从客户端复制到.ssh文件夹中名为authorized_keys的主机文件中。然后,当我 “ssh root @ hostname” 它工作正常,我不需要输入密码(注意我的客户的帐户不是root)。

然后我对主机中的虚拟机guest进行同样的尝试。我将同一个文件复制给了访客。我使用带有选项“-net user,vlan = 0,hostfwd = tcp :: 5555-:22”的qemu启动了guest虚拟机,它将请求转发到主机5555端口到guest虚拟机的22端口。然后在客户端,我执行了 “ssh -p 5555 root @ hostname” 它失败。它显示主机的RSA密钥已更改或其他...请注意,我的访客的帐户也是root,我可以通过连接到主机的5555端口使用Putty ssh到guest虚拟机。我相信文件权限也得到妥善处理。

有没有人有线索:>

1 个答案:

答案 0 :(得分:3)

是的,这是正确的行为。

当您第一次连接到主机系统时,客户端计算机上的ssh会询问具有指纹bla-bla-bla的计算机是否真的是您想要连接的计算机。你回答'是'并且你的客户端机器上的ssh记住了文件〜/ .ssh / known_hosts中的主机名,IP和指纹。然后,在所有后续连接期间,它会验证指纹未更改,因为更改表明身份验证过程需要您注意。可能存在一些不匹配的正当理由:

  • 你在远程主机上重新安装了sshd;
  • 您的主机使用DHCP获取其IP并且IP已更改。

如果您确切地知道指纹不应该改变,则表明您试图让您进入另一个系统。

此机制旨在确保您已登录到预期登录的系统。

在您的情况下,首先在端口22的IP a.b.c.d上登录系统。然后,您尝试使用端口5555上的相同IP a.b.c.d登录。此端口后面的VM有不同的指纹。所以ssh抱怨。

您的问题的解决方案是登录主机系统,然后从此远程shell会话登录到VM。另外,我建议你为这个“远程”连接生成另一对公钥/私钥。因此,当您保存在主机上的私钥被泄露时,您工作站上保存的私钥仍然有效。