gpt4 book ai didi

git - 如何让 ssh 代理转发在 vm 上使用多个帐户?

转载 作者:行者123 更新时间:2023-12-02 14:01:42 26 4
gpt4 key购买 nike

关于 ssh 代理转发有很多答案,但我似乎找不到解决我的问题的答案。

我正在使用 packer.io自动配置我的服务器。我正在使用的构建器之一是 virtualbox-iso builder 允许我创建一个 Vagrant用于本地测试的框。

我的主机是一台 Macbook Pro,我使用如下命令向 ssh-agent 添加了两个 ssh key :ssh-add -K ~/.ssh/id_rsa .我可以通过 ssh-add -l 验证它们都存在和 ssh-add -L .

其中一个 key 是我的工作 bitbucket 帐户,另一个是我的个人帐户。我想专门针对此特定 VM 上的工作帐户。在我的主机上,我在 ~/.ssh/config 下创建了一个配置内容如下:

Host work.bitbucket.org
User workuser
ForwardAgent yes
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa

Host bitbucket.org
User homeuser
ForwardAgent yes
IdentitiesOnly yes
IdentityFile ~/.ssh/id_rsa_personal

然后我可以通过以下方式使用我的工作 key 登录我的主机: ssh -T git@work.bitbucket.org和我的家庭 key ssh -T git@bitbucket.org .

现在对于虚拟机...

按照我从添加的其他答案中找到的说明 config.ssh.forward_agent = true到我的 Vagrant 文件。

我还在我的一个配置脚本中执行以下操作:
echo "updating known_hosts folder"
ssh-keyscan work.bitbucket.org >> ~/.ssh/known_hosts

echo "adding bitbucket key from file"
sudo cat /input/rsa.txt >> ~/.ssh/authorized_keys

第一个命令允许我避免将来出现任何将 key 添加到我的 known_hosts 文件的提示。第二个命令只是从上一步中上传的文件中附加我的工作 rsa key 。

这似乎让我的代理转发在某种程度上在我的虚拟机上工作,但是,它总是选择我的 ssh-agent 中的第一个条目。

如果我尝试: ssh -T git@work.bitbucket.orgssh -T git@bitbucket.org我总是得到 ssh-add -l 中列出的第一个键. (我实际上通过添加和删除键来操作订单来验证这一点)

我认为这是因为我在盒子上时已经在 ssh session 中。所以我看了 this question验证如何 vagrant ssh确实有效。我试图操纵我的主机 config带有 127.0.0.1:PORT 的文件其中 PORT 是我的机器所在的特定端口。我还尝试添加通配符 config在我的虚拟机上允许跳跃,但我显然没有正确设置某些东西,因为它仍然无法按预期工作。

现在我可以手动删除( ssh-add -d pathtokeytoremovehere )额外的键,并在需要时将它们添加回来,但这显然并不理想。

有任何想法吗?

最佳答案

您正在转发 ssh-agent ,但不是负责为您选择正确 key 的本地配置。要使其正常工作,您还必须将配置复制到服务器。

但不要在那里复制私钥。引用公钥应该可以完成这项工作,因为它们将允许 ssh 尝试该 key 并从 ssh-agent 中选择正确的 key 。 .

关于git - 如何让 ssh 代理转发在 vm 上使用多个帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44791532/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com