如何在不同的用户名下为git设置ssh代理转发?

xvw2m8pv  于 2023-02-14  发布在  Git
关注(0)|答案(1)|浏览(424)

我经常需要在不同用户名下使用ssh命令,我希望能够使用ssh密钥克隆其他用户的git仓库。例如,

ssh me@box 'git clone git@server:org/repo.git'

有用,但是

ssh other@box 'git clone git@server:org/repo.git'

即使我设置了ssh-agent转发(我收到了"Permission denied(publickey)"的错误,这是试图克隆一个git repo但没有权限的用户的典型错误。更改我的全局git user.nameuser.email似乎没有帮助。
我确保了SSH_AUTH_SOCK在我的环境中存在并且有效(ssh-agent正在运行),ssh-agent -L打印了正确的密钥,并且克隆在我自己的用户名下工作(在上面的示例中为me)。
我的.ssh/config看起来像

Host *
  ForwardAgent yes

只有当我尝试在other用户下克隆时,即使启用了密钥转发,它也会失败,但当我以me身份克隆时,它会工作。
有什么建议吗?

guz6ccqo

guz6ccqo1#

先试一下:

ssh other@box 'ssh -Tv git@server'

您将看到当通过该隧道以other身份登录时,实际尝试并从box发送到git@server的SSH密钥。
我建议在other@box:/home/other/.ssh中创建一个专用密钥,并将该公钥注册到Git仓库托管服务器的正确帐户(有权克隆repo.git的帐户)下。

相关问题