我正在使用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方法,在配置期间我无法想到一种干净的方法。关于如何正确实现这一点的想法?
答案 0 :(得分:1)
首先,您需要在主机上运行config.get("MyApp","variable")
(例如ssh-agent
)。也许这对你来说是流浪汉。您可以通过个人资料中的hostm
或直接在当前的shell中手动完成此操作。
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.box
和hostm
ssh vagrant@vargrant.box