Vagrant provisioning + SHH Forwarding +私有Git存储库 - >配置期间出错,但在用户空间中有效

时间:2014-08-12 20:29:02

标签: git ssh vagrant

我正在运行一个相当古老的流浪汉1.2.7。

我的设置如下:

  • 启用了SSH代理和转发的Windows主机。
  • 转发工作,我在流浪盒内检查了一个" vagrant"和" root"用户,在执行ssh-add -l
  • 时都显示密钥
  • 因此我已将Defaults env_keep += "SSH_AUTH_SOCK"修复程序应用于sudoers.d,因此转发将传播到root
  • 我的目标服务器位于known_hosts文件中
  • 目标:拥有一个访问私有git存储库并获取文件的木偶脚本
  • 加载流浪汉后运行puppet脚本,每件事都可以正常工作。文件通过转发的ssh密钥获取。 SSH -v告诉我如此

但是:在提供期间,这不会奏效。我会收到以下错误:

err: /Stage[main]/Git::Clone/Vcsrepo[/vagrant/repo]/ensure: change from absent to present failed: Execution of '/bin/su vagrant -c git clone user@server.com:~/myrepo.git /vagrant/repo' returned 128: Cloning into /vagrant/repo'...
Error reading response length from authentication socket.
Permission denied, please try again.
Permission denied, please try again.
Permission denied (publickey,password).
fatal: The remote end hung up unexpectedly

我不完全理解为什么会这样。 据我所知,不鼓励将ssh密钥转发给特权用户。但是,我认为通过完成所有SSH_AUTH_SOCK业务可以避免这种情况。

有人有想法,我可能会失踪吗?

1 个答案:

答案 0 :(得分:0)

我在工作中遇到了同样的挑战,我正在整理一个Vagrant开发盒。

事实证明我的Mac很好地容纳了ssh等,这正如你所料,另一方面Windows挣扎,最后我必须找到替代方案。

另一种方法是为您的github帐户设置访问令牌(请参阅here),然后您只需使用它来访问您的私人仓库。

值得一提的一点是,如果您是开发团队的一员,或者其他人正在对同一个仓库进行更改,那么您将需要在之后设置ssh-ing到github,因为您将无法确定谁做出了改变等。

希望有所帮助。