允许 ssh 访问远程机器上的 git pull

允许 ssh 访问远程机器上的 git pull

我们有一台服务器上有一些 git 存储库,我希望能够将其中一个存储库克隆到我们的网络服务器(运行 debian)。我ssh-keygen在网络服务器上运行并将公钥复制到authorized_keysgit 服务器上,因此现在我可以从网络服务器成功 ssh 到 git 服务器:

ssh -T [email protected]

它会让我登录。但是,如果我在网络服务器上调用 git clone:

sudo git clone [email protected]:/dir/repo.git

我收到这样的回复:

Permission denied (publickey).
fatal: The remote end hung up unexpectedly

有人知道为什么会这样吗?我读到我应该ForwardAgent在本地机器(运行 Max OS X)上允许 /etc/ssh_config,我已经这样做了但没有解决问题。

答案1

你是不是呼叫git clone你正在呼叫sudo切换到完全不同的 Unix 帐户(root)只有那时呼叫git clone

结果sudo ssh -v ...是,正如您在 中注意到的那样,它ssh在属于 root 而不是您的目录中寻找私钥。由于sudo默认情况下会清除环境,ssh因此也无法使用您的 SSH 代理,因为SSH_AUTH_SOCK环境变量已被删除。

由于您已启用代理转发,请尝试使其保留所有环境变量。sudo -E ssh ...

相关内容