Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用ssh代理转发;流浪汉;?_Ssh_Virtualbox_Forwarding_Ssh Keys_Vagrant - Fatal编程技术网

如何使用ssh代理转发;流浪汉;?

如何使用ssh代理转发;流浪汉;?,ssh,virtualbox,forwarding,ssh-keys,vagrant,Ssh,Virtualbox,Forwarding,Ssh Keys,Vagrant,我不想在一个vagrant box上创建一个新的SSH密钥对,而是想重新使用主机上的密钥对,使用。我已尝试在Vagrant文件中设置为TRUE,然后重新启动VM,并尝试使用: vagrant ssh -- -A …但当我尝试进行git签出时,仍然会提示我输入密码。知道我遗漏了什么吗?将其添加到Vagrant文件中 Vagrant::Config.run do |config| # stuff config.ssh.forward_agent = true end 最近,我们在va

我不想在一个vagrant box上创建一个新的SSH密钥对,而是想重新使用主机上的密钥对,使用。我已尝试在Vagrant文件中设置为TRUE,然后重新启动VM,并尝试使用:

vagrant ssh -- -A

…但当我尝试进行git签出时,仍然会提示我输入密码。知道我遗漏了什么吗?

将其添加到Vagrant文件中

Vagrant::Config.run do |config|
   # stuff
   config.ssh.forward_agent = true
end

最近,我们在vagrant 1.1.5中试用了
vagrant aws
插件时,遇到了SSH代理转发问题。事实证明,Vagrant正在强制
identiesonly=yes
而没有将其更改为
no
。这迫使Vagrant只能查看我们在AWS提供商的
Vagrant文件中列出的私钥


我把我们的经历写在日记里。在某个时候,它可能会变成一个拉取请求。

我正在OSX Mountain Lion上使用vagrant 2

Vagrant.configure("2") do |config|
  config.ssh.private_key_path = "~/.ssh/id_rsa"
  config.ssh.forward_agent = true
end

  • config.ssh.private\u key\u path
    是您的本地私钥
  • 您的私钥必须可用于本地ssh代理。您可以使用
    ssh add-L
    进行检查,如果未列出,请使用
    ssh add~/.ssh/id\u rsa
  • 别忘了将您的公钥添加到Vagrant VM上的
    ~/.ssh/authorized_keys
    。您可以通过复制、粘贴或使用类似

  • 除了将“config.ssh.forward_agent=true”添加到vagrant文件之外,还要确保主机已设置为代理转发。Github为此提供了一个解决方案。(查看故障排除部分)。

    我在1.4.3中使用了上述回复,但在1.5中停止了使用。我现在必须运行
    ssh add
    ,才能完全使用1.5

    现在,我将以下行添加到我的ansible配置脚本中。
    
    -名称:确保ssk密钥已传递给来宾。
    本地操作:命令ssh add
    


    我还创建了一个设置要点:

    如果您在Windows上,Vagrant中的SSH转发在默认情况下无法正常工作(因为NetSSH中有一个bug)。请参阅此特定的流浪虫报告:

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

    真正的问题是使用127.0.0.1:2222作为默认端口转发的流浪汉。 您可以添加一个(不是2222,默认情况下2222已被占用)

    config.vm.network“转发的\u端口”,来宾:22,主机:2333,主机ip:“0.0.0.0”

    “0.0.0.0”是从外部连接获取请求的方式。 然后 ssh-p2333vagrant@192.168.2.101(更改您自己的主机ip地址,dud) 你会工作得很好的。
    谢谢我,就叫我雷锋吧

    确保VM不会启动自己的SSH代理。我的
    ~/.profile

    eval `ssh-agent`
    

    删除它后,SSH代理转发工作正常。

    在Windows上,问题是Vagrant不知道如何与git bash的SSH代理通信。然而,它确实知道如何使用PuTTY的选美比赛。因此,只要Pageant正在运行并加载了您的SSH密钥,并且设置了config.SSH.forward\u代理,就应该可以工作

    有关详细信息,请参阅


    如果使用Pageant,则不再需要。

    确保在基础主机上添加ssh并解密密钥。请注意,Windows不会自动启动ssh代理,转发ssh密钥时需要运行ssh代理。接下来在Windows上安装ssh代理自动启动。这个答案可能不值得这么多人投票。OP明确指出他们在配置文件中添加了
    config.ssh.forward\u agent
    ,那么这个答案提供了什么新信息呢?连链接都已经在问题中了。@Trindaz你完全正确。我无法解释为什么这是我最流行的答案之一。然而,这似乎至少帮助了52个人,所以我不得不称之为胜利。这个答案确实没有带来任何新的信息,但另一方面,它是需要为流浪者配置的机器配置的一切。至少如果您在连接机器上正确设置了代理转发(即,转发适用于其他非漫游机器)。是否有办法在使用
    vagrant up
    创建时自动将主机上的底层公钥复制到漫游VM?现在我必须创建机器,手动登录,然后将我的公钥添加到/home/vagrant/.ssh/authorized_keys。我注意到,在我进行上述设置后,我可以使用“vagrant”用户来“git clone”,但不能使用“root”用户来“git clone”。你知道问题出在哪里吗?感谢
    config.ssh.private\u key\u path=“~/.ssh/id\u rsa”
    使Vagrant挂起
    等待VM启动
    。您还需要在OS X上保留Vagrant插入密钥
    config.ssh.private\u key\u path=['~/.Vagrant.d/unsecure\u private\u key','~/.ssh/id\u rsa'
    ,我发现使用
    ssh add-K
    将私钥添加到OS X密钥链中是可行的(以及
    config.ssh.forward\u agent=true
    )。我犯了和@apennebaker一样的错误。按照卡林建议的步骤做也无济于事。。。对我有效的方法是从我的主机操作系统向keychain添加密钥,并禁用config.ssh.private_key_路径分配。我一直必须在1.4和1.5中使用ssh add,否则就不会有要转发的代理运行。如果您没有正确的ssh密钥,git不应该询问密码,但会告诉您您拒绝了权限。我猜你被要求输入密码是因为你是从https而不是从https克隆的git@github.com(ssh)。我的2美分。