我在Windows上使用TortoiseGit。当我试图从标准Windows资源管理器的上下文菜单克隆时,我得到这个错误:

请确保您拥有正确的访问权限并且存储库存在

更准确地说,终端的快照如下:

——progress -v "git@arobotdev:\git\AlfaRobot. exe。git”“C: \ \ AlfaRobot” 克隆到“C:\Work\AlfaRobot”… 权限被拒绝,请重试。 权限被拒绝,请重试。 权限被拒绝(公钥,密码)。 无法从远程存储库读取。 请确保您拥有正确的访问权限 并且存储库存在。 Git没有干净地退出(退出代码128)(21450 ms @ 19.09.2014 10:36:58)

我应该怎么做才能使git正常工作?


当前回答

如果它之前工作,突然停止工作:

此问题可能是因为有时ssh-agent在重新启动时不是持久的。你应该检查ssh-agent是否添加了你的密钥:

ssh-add -l -E md5

如果你得到如下输出:

The agent has no identities.

这意味着ssh-agent丢失了您的密钥。在这种情况下,您只需要再次添加标识键。喜欢的东西:

ssh-add ~/.ssh/git_rsa

错误现在应该消失了!

其他回答

您正在尝试通过ssh: git@arobotdev..克隆存储库。,并且您的SSH密钥在服务器上没有正确设置。原因有很多:

您的公钥可能没有保存在用户git的authorized_keys文件中 如果1不为真,则“您的私钥不保存在您的HOMEDIR的。ssh/文件夹中”。 权限设置不正确

如果以上三点都不属实,那么我唯一的结论就是: git@arobotdev: AlfaRobot.git 假设AlfaRobot。git在git用户的HOMEDIR目录下,而不是在git用户的HOMEDIR目录下的名为git的文件夹中。

尝试使用HTTPS代替SSH从GIT克隆,使用这个Url获取克隆,你可以使用Gitbase, Android Studio或任何其他工具克隆分支。

使用您的HTTPS源而不是SSH url

例子:

git remote add origin  https://gitlab.com/user/folder.git

如果它之前工作,突然停止工作:

此问题可能是因为有时ssh-agent在重新启动时不是持久的。你应该检查ssh-agent是否添加了你的密钥:

ssh-add -l -E md5

如果你得到如下输出:

The agent has no identities.

这意味着ssh-agent丢失了您的密钥。在这种情况下,您只需要再次添加标识键。喜欢的东西:

ssh-add ~/.ssh/git_rsa

错误现在应该消失了!

下面是我解决这个问题的方法。我在Win7/10上使用Babun(mint .exe)。当我尝试了上面提到的许多解决方案,没有一个是有效的。我意识到我可能用错了ssh代理… 所以我运行echo $GIT_SSH来查找,它显示了Plink.exe的路径。 我真正期待的是OpenSSH。

因此,我将以下一行程序添加到~/。zshrc中

注1:你也可以直接在babun中执行它 注2:如果你使用bash,那么配置文件是.bashrc

export GIT_SSH=$(which ssh)

它真的有用!