在vagrant guest中使用来自主机的ssh私钥

时间:2014-07-10 15:58:30

标签: vagrant

我想在配置流浪盒时克隆一堆私有git存储库。根据{{​​3}},应该可以使用config.ssh.forward_agent = true。但是,当尝试通过类似ssh -T git@github.com -o StrictHostKeyChecking=no之类的东西连接到github时,它失败并出现以下错误:

  

警告:永久添加' github.com,192.30.252.130' (RSA)到已知主机列表。   权限被拒绝(公钥)。

我将配置缩减到最简单的配置。您可以在此处找到它:this article

当我做" vagrant ssh"并再次尝试相同的错误,发生类似的错误:

  

克隆到私人存储库' ...   警告:永久添加用于IP地址的RSA主机密钥' 192.30.252.130'到已知主机列表。   权限被拒绝(publickey)。   致命:远程端意外挂断

编辑:上面链接的配置适用于运行Ubuntu的主机,但既不能在Mac主机上运行,​​也不能在Windows主机上运行。我的目标是使配置适用于所有这三个主机。

3 个答案:

答案 0 :(得分:31)

请检查您的主机系统是否启用了ssh-agent转发。您可以这样做,例如将此块添加到~/.ssh/config文件中:

Host                    *
  ForwardAgent          yes 

如果启用此功能vagrant ssh(以及vagrant provision)应该能够将密钥转发到来宾计算机。

您也可以使用ssh-add -l检查您的ssh-agent是否知道您的SSH密钥。如果它在列表中并且您已激活代理转发,则应该会成功。否则,您可以通过运行ssh-add <path to your key file>将密钥添加到ssh-agent。

答案 1 :(得分:6)

听起来你可能会遇到这个特殊的错误: https://github.com/mitchellh/vagrant/issues/1735 (尽管它正在关闭&#34;它实际上并非已修复

在Windows上,默认情况下,Vagrant中的SSH转发无法正常工作(因为net-ssh中存在错误)。

然而,有一种解决方法或简单的黑客攻击。您可以通过VagrantFile中的简单配置脚本将本地SSH密钥自动复制到Vagrant VM。这是一个例子: https://github.com/mitchellh/vagrant/issues/1735#issuecomment-25640783

答案 2 :(得分:2)

汤姆,

您所做的事情在性质上相当普遍,我认为Vagrant不具体。

尝试以下某些方法来追踪问题:

  1. 修改您的/etc/ssh/sshd_config
  2. 设置LogLevel debug
  3. 重新启动sshd服务sudo service sshd restart/etc/init.d/sshd restart
  4. tail -f /var/log/authlog - 请注意,该文件可能是/var/log/authd.log/var/log/secure之类的内容。
  5. 观看连接时会发生什么。它应该告诉你它失败的原因。
  6. 再次抱歉,我对Vagrant并不熟悉,但我想知道配置脚本是否作为另一个用户运行,在这种情况下,代理转发可能无法按预期工作?< / p>