Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对多台流浪机器使用相同的ssh密钥_Ssh_Vagrant - Fatal编程技术网

对多台流浪机器使用相同的ssh密钥

对多台流浪机器使用相同的ssh密钥,ssh,vagrant,Ssh,Vagrant,我正在尝试使用Vagrant设置两个VM,其中一个需要能够使用私钥通过ssh连接到第二个VM 我在一个vagrant文件中定义了两个VM,启动它们,然后将私钥从.vagrant目录复制到我的第一个VM中。然后,我可以在没有密码的情况下通过ssh连接到第二个VM 问题是这不稳定,每次我执行Vagrant up时,Vagrant都会回收这把钥匙,并创建一把新钥匙。这显然破坏了从第一个VM到第二个VM的ssh功能,直到我再次复制私钥为止 我并不特别关心Vagrant到底使用哪一个密钥,我只希望它是稳定

我正在尝试使用Vagrant设置两个VM,其中一个需要能够使用私钥通过ssh连接到第二个VM

我在一个vagrant文件中定义了两个VM,启动它们,然后将私钥从.vagrant目录复制到我的第一个VM中。然后,我可以在没有密码的情况下通过ssh连接到第二个VM

问题是这不稳定,每次我执行
Vagrant up
时,Vagrant都会回收这把钥匙,并创建一把新钥匙。这显然破坏了从第一个VM到第二个VM的ssh功能,直到我再次复制私钥为止


我并不特别关心Vagrant到底使用哪一个密钥,我只希望它是稳定的,这样我就可以始终在我的VM之间使用ssh。我怎样才能做到这一点?

你有两种可能做到这一点:

  • 每次启动VM复制新生成的密钥时,都要运行一个shell provisioner,因此基本上每次运行
    vagrant up
    时,都会将ssh密钥复制到VM中,这样您仍然能够将ssh复制到第二个VM中

  • 强制vagrant使用密钥,将以下参数添加到vagrant文件中,您将在其中存储自己的自定义密钥

    config.ssh.private_key_path = "custom_key_file"
    config.ssh.forward_agent = true
    

  • 因此,Vagrant在引导VM时将使用此密钥文件,您可以将此密钥复制到VM中,以将ssh复制到第二个

    感谢您的回答,但是我如何使用选项2提供相应的公钥?您可以启用
    config.ssh.forward\u代理