允许ssh访问git在远程机器上拉

我们有一个服务器上的一些我们的git仓库,我希望能够克隆到我们的networking服务器(运行debian)。 我在networking服务器上运行了ssh-keygen ,并将公钥复制到了gitserver上的authorized_keys,现在我可以成功通过web服务器ssh到gitserver:

 ssh -T [email protected] 

它会login我。但是,如果我在Web服务器上调用git clone:

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

我得到这个回应:

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

有谁知道这是为什么发生? 我读过我应该允许在我的本地机器上运行Max OS X的/ etc / ssh_config中的ForwardAgent ,我已经完成但没有解决问题。

git clone ; 你正在调用sudo切换到一个完全不同的Unix帐户(root), 然后才调用git clone

结果,你也会注意到sudo ssh -v ... ,那就是ssh正在寻找属于root的目录中的私钥,而不是你。 由于sudo默认清理环境,所以ssh不能使用你的SSH代理,因为SSH_AUTH_SOCK环境variables被删除了。

当您启用代理转发时,请尝试使用sudo -E ssh ...以使其保留所有环境variables。