繁体   English   中英

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

[英]use ssh private key from host in vagrant guest

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

警告:永久性地将“github.com,192.30.252.130”(RSA)添加到已知主机列表中。 权限被拒绝(publickey)。

我将配置减少到最简单的配置。 你可以在这里找到它: https//gist.github.com/TomTasche/31f7c45fcffc2997d43a

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

克隆到'private-repositories'...警告:永久性地将IP地址'192.30.252.130'的RSA主机密钥添加到已知主机列表中。 权限被拒绝(publickey)。 致命:远程端意外挂断

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

请检查您的主机系统是否启用了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。

听起来你可能会遇到这个特殊的错误: https//github.com/mitchellh/vagrant/issues/1735 (尽管它被“关闭”它实际上并没有修复

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

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

汤姆,

你所做的事情本质上是相当通用的,我认为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. 观察连接时会发生什么。 它应该给你一些指示它失败的原因。

再说一遍,我对Vagrant并不熟悉,但我想知道配置脚本是否作为另一个用户运行,在这种情况下,代理转发可能无法按预期工作?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM