Vagrant 将文件从来宾虚拟机传输到另一个来宾虚拟机

问题描述 投票:0回答:2

是否有任何选项可以将简单文件从一个 Vagrant VM 传输到另一个 Vagrant VM?

我为两个虚拟机分配了静态 IP,监视开放的 SSH 端口并尝试使用 scp 命令传输文件,但不幸的是它返回错误“权限被拒绝(公钥)”,这是合理的。

我正在寻找另一种将文件传输到目标来宾虚拟机的方法(例如,将公钥传输到目标虚拟机,然后通过 SSH 连接到它),以替代 scp。

我已经尝试过 scp,但由于未授权的公钥而被拒绝。

此外,我尝试将 pub key 传输到主机,然后手动复制到每个虚拟机,但对于 1..N 个足够大的虚拟机来说,它的效率不高。

vagrant file-transfer
2个回答
0
投票

这是多机器环境的示例。每个 vagrant vm 在目录中都有自己的密钥

/vagrant/.vagrant/machines/myname/provider_name/private_key

将此行添加到您的 Vagrantfile 中:

config.vm.synced_folder ".", "/vagrant", type: "virtualbox", mount_options: ["dmode=700","fmode=700"]

使用 ssh 或 scp:

ssh -i /vagrant/.vagrant/machines/app/virtualbox/private_key [email protected]

0
投票

您可以直接使用

ssh
,而不是尝试使用
scp
synced_folder
,如果所有虚拟机都是从同一目录创建的,则应该已经有所有虚拟机都相同的挂载
/vagrant
目录,如果您可以添加另一个
synced_folder

如果您想要的话,另一种方法

ssh
您可以创建额外的ssh密钥(使用
ssh-keygen -t ed25519 -f ./my_key
),并在创建过程中将它们复制到虚拟机中查看此处了解详细信息,当然您还需要复制私钥,因此在连接过程中
ssh
您可以传递参数
-i my_key
,因为所有主机都将拥有相同的公钥和私钥,它应该可以工作。 (请记住,它不安全,因为通常不应共享私钥)

© www.soinside.com 2019 - 2024. All rights reserved.