gpt4 book ai didi

ssh 到 qemu 虚拟机 guest ,无需输入密码

转载 作者:行者123 更新时间:2023-12-02 13:52:35 26 4
gpt4 key购买 nike

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

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

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

有没有人有线索:>

最佳答案

是的,这是正确的行为。

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

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

  • 当您确切地知道指纹不应该改变时,这表明您试图让您进入另一个系统。

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

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

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

    关于ssh 到 qemu 虚拟机 guest ,无需输入密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12573015/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com