我经常需要在不同用户名下使用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.name
和user.email
似乎没有帮助。
我确保了SSH_AUTH_SOCK
在我的环境中存在并且有效(ssh-agent正在运行),ssh-agent -L
打印了正确的密钥,并且克隆在我自己的用户名下工作(在上面的示例中为me
)。
我的.ssh/config
看起来像
Host *
ForwardAgent yes
只有当我尝试在other
用户下克隆时,即使启用了密钥转发,它也会失败,但当我以me
身份克隆时,它会工作。
有什么建议吗?
1条答案
按热度按时间guz6ccqo1#
先试一下:
您将看到当通过该隧道以
other
身份登录时,实际尝试并从box
发送到git@server
的SSH密钥。我建议在
other@box:/home/other/.ssh
中创建一个专用密钥,并将该公钥注册到Git仓库托管服务器的正确帐户(有权克隆repo.git
的帐户)下。