【问题标题】:ssh to a qemu virtual machine guest without typing in the passwordssh 到 qemu 虚拟机来宾,无需输入密码
【发布时间】:2012-09-24 21:12:54
【问题描述】:

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

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

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

有人知道吗:>

【问题讨论】:

    标签: ssh passwords qemu


    【解决方案1】:

    是的,这是正确的行为。

    当您第一次连接到主机系统时,客户端机器上的 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 登录。此端口后面的虚拟机具有不同的指纹。所以 ssh 抱怨。

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

    【讨论】:

    • @Serge 您好,非常感谢您的回复。这说得通。所以指纹与 ip 无关,无论端口如何?:
    • 是的,与端口无关。 “但我不太……” 你登录主机系统并在远程系统的 shell 命令提示符下键入ssh your-vm-address 命令。至于过程的自动化,请在您的工作站上尝试以下命令:ssh root@your-remotehost 'ssh your-vm-address'
    猜你喜欢
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多