使用Vagrant在用户之间共享ssh-agent转发凭据

时间:2017-05-20 17:05:51

标签: ssh vagrant credentials

我正在使用Vagrant创建一个虚拟机并使用' config.ssh.forward_agent = true'设置从我的主机操作系统转发SSH凭据,但我很难弄清楚如何跨用户帐户共享凭据。默认的' vagrant' account具有SSH_AUTH_SOCK环境var,指向/ tmp / ssh *下的动态生成/命名的套接字文件。如果我ssh到该帐户并使用setfacl给我的' foobar'用户rwx perms到文件,然后我切换到我的' foobar'帐户并手动设置我的SSH_AUTH_SOCK变量指向同一个套接字文件,然后一切正常。但这似乎是一种真正的hacky方法,在配置期间我无法想到一种干净的方法。关于如何正确实现这一点的想法?

1 个答案:

答案 0 :(得分:1)

首先,您需要在主机上运行config.get("MyApp","variable")(例如ssh-agent)。也许这对你来说是流浪汉。您可以通过个人资料中的hostm或直接在当前的shell中手动完成此操作。

您的vagrantfile中的

eval ssh-agent必须为config.ssh.forward_agent

来宾计算机中的所有用户(例如true)需要在vagrant.box文件中拥有来自用户“foo”的公钥(确保目录和文件权限!)。

authorized_keys上的所有用户都需要在vagrant.box内设置ForwardAgent yes

最后,您必须通过~/.ssh/config上的hostm将您的私钥添加到ssh-add what_ever_your_private_key_is上的ssh代理。

然后,您应该可以从hostm通过vagrant.boxhostm

登录ssh vagrant@vargrant.box