让 vagrant 配置克隆一个存储库,

Jar*_*eer 5 ssh virtualbox vagrant

我正在尝试构建一个环境,当它完成启动 VM 时,它将存储库克隆到共享目录中。问题是该框在远程存储库上没有 SSH 权限。

我有一个简单的 bash 脚本:

#!/bin/bash
cd /vagrant
if [ ! -d "repo" ]; then
  git clone git@remoterepo.com:/my/repo.git
end
Run Code Online (Sandbox Code Playgroud)

我收到错误:

主机密钥验证失败。

致命:远端意外挂断

这是有道理的,因为没有钥匙 /home/vagrant/.ssh

我已经做了一些谷歌搜索但无济于事,我试图设置config.ssh.forward_agent = true它允许我在我被 ssh 连接到机器时手动克隆 repo,但在它尝试自行运行时则不能。我也尝试过指定,config.ssh.private_ssh_key = "~/.ssh/id_rsa"但是 vagrant 根本无法完成加载(我假设应用程序无法通过 ssh 进入该框)。

所以我的问题是......我是否需要重建我的基本框以包含一组密钥并使用我的远程存储库授权这些密钥?或者是否有我缺少的更简单的解决方案?

注意:我已经查看了 Vagrant VM上的SSH 基础知识,它们看起来很相似,但我认为这更多是关于在机器上设置不同的用户,并且发布的解决方案比我想要的要手动得多。

Jar*_*eer 4

我的临时解决方案是生成一组密钥并将它们放在与 相同的目录中Vagrantfile,然后在配置时将密钥复制到/root/.ssh/. 这样做有一个小问题,那就是我还必须生成一个known_hosts文件,以便虚拟机接受来自远程服务器的连接。该known_hosts文件还驻留在 /vagrant/.ssh/ 目录中,并使用密钥进行复制,现在一切正常。

最终,当我不尝试通过不稳定的 Wi-Fi 将 1GB 盒子上传到我的文件主机时,真正的解决方案是将这些文件永久包含在 Basebox 中。

  • 您是否找到了最终的解决方案(因为这是临时的)?我正在寻找像“vagrant up”这样简单的东西,一切正常。 (2认同)