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

在vagrant guest中使用来自主机的ssh私钥,vagrant,Vagrant,我想克隆一堆私有git存储库,同时设置一个流浪者盒子。根据这一点,应该可以使用config.ssh.forward\u agent=true。但是,当试图通过ssh-T之类的方式连接到github时git@github.com-o StrictHostKeyChecking=no失败,出现以下错误: 警告:已将'github.com,192.30.252.130'(RSA)永久添加到已知主机列表中。 权限被拒绝(公钥) 我将配置简化为最简单的配置。你可以在这里找到它: 当我执行“vagrant

我想克隆一堆私有git存储库,同时设置一个流浪者盒子。根据这一点,应该可以使用
config.ssh.forward\u agent=true
。但是,当试图通过
ssh-T之类的方式连接到github时git@github.com-o StrictHostKeyChecking=no
失败,出现以下错误:

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

我将配置简化为最简单的配置。你可以在这里找到它:

当我执行“vagrant ssh”并再次尝试相同操作时,会出现类似的错误:

克隆到“私有存储库”。。。 警告:已将IP地址“192.30.252.130”的RSA主机密钥永久添加到已知主机列表中。 权限被拒绝(公钥)。 致命:远程端意外挂起


编辑:上面链接的配置在运行Ubuntu的主机上有效,但在Mac主机和Windows主机上均无效。我的目标是使配置能够在这三台主机上运行。

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

Host                    *
  ForwardAgent          yes 
如果启用此功能,ssh(以及
vagrant provision
)应该能够将您的密钥转发到来宾计算机

您可能还想使用
ssh add-l
检查您的ssh代理是否知道您的ssh密钥。如果它在列表中,并且您激活了代理转发,那么您应该会成功。否则,您可以通过运行
ssh add

Tom将密钥添加到ssh代理

你所做的在本质上是相当一般的,我不认为是特别的

请尝试以下方法来跟踪问题:

  • 编辑您的
    /etc/ssh/sshd\u配置
  • 设置日志级调试
  • 重新启动sshd服务
    sudo服务sshd Restart
    /etc/init.d/sshd Restart
  • tail-f/var/log/authlog
    ——注意,该文件可能是类似于
    /var/log/authd.log
    /var/log/secure
    之类的文件
  • 观察连接时发生的情况。它应该给你一些指示,为什么它失败了

  • 再次抱歉,我对Vagrant不太熟悉,但我想知道设置脚本是否以其他用户的身份运行,在这种情况下,代理转发可能无法按预期工作?

    听起来您可能遇到了此特定错误: (尽管它是“关闭的”,但实际上并不是固定的)

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

    然而,有一个解决办法或简单的黑客。您可以通过Vagrant文件中的简单配置脚本将本地SSH密钥自动复制到Vagrant VM。下面是一个例子:

    谢谢您的回答!按照上述说明操作后,我能够在
    vagrant ssh
    中通过ssh进行身份验证。但是,我的设置脚本仍然失败,并出现以下错误:
    从身份验证套接字读取响应长度时出错。权限被拒绝(公钥)。
    是的,几天前我们在办公室也遇到过这种情况……它在没有实际行动的情况下有时会继续工作……文档中说
    config.ssh.forward\u agent=true
    与ssh代理转发相结合应该可以工作,但我们没有找到它不工作的原因……:/Meh,如果我的开发环境不能在所有平台上运行,那么这种做法就破坏了将其移动到容器中的整个概念。无论如何,谢谢你的帮助!也许其他人会想出一个解决方案……谢谢你,老兄,你的答案在Linux和Mac上都非常有效。Windows无法按预期工作,但@Tim Donohue有一个解决方案!Github强烈建议不要使用这种做法!“警告:您可能会尝试使用类似Host*的通配符将此设置仅应用于所有SSH连接。这不是一个好主意,因为您将与SSH连接到的每台服务器共享本地SSH密钥。他们无法直接访问密钥,但在建立连接时,他们将能够像您一样使用这些密钥。您只应添加您信任并打算与代理转发一起使用的服务器。”据我所知,配置脚本以root用户身份运行。实际上,这似乎是我的问题的原因,但建议的解决方法也不起作用:Ubuntu 14.04上的文件是/var/log/auth.log。如果有人有问题,我很想把奖金分给你和@Knut,但他的回答允许我在Mac和Linux上运行SSH代理转发。不过,你的答案对Windows来说是恰到好处的!非常感谢!