我在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密钥没有与ssh-agent一起添加。您必须在您的终端上执行以下步骤:-

$ eval "$(ssh-agent -s)" Agent pid 5867 $ ssh-add <private-ssh-key-file-name> // eg。Id_rsa(不是.pub) 为/home/you/输入密码。ssh / id_rsa: [] 标识添加:/home/you/。ssh / id_rsa (/ home /你/ . ssh / id_rsa)

其他回答

如果您通过VPN连接到git存储库,也会发生这种情况。 确保您已连接到用于访问组织资源的VPN。

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

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

ssh-add -l -E md5

如果你得到如下输出:

The agent has no identities.

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

ssh-add ~/.ssh/git_rsa

错误现在应该消失了!

如果您使用的是共享机器,那么使用自己的密码或无密码私钥可能会有些过分。更安全的选项是访问令牌:

进入设置,开发人员设置,个人访问令牌 生成新的令牌。 注意标记的用途。 授予回购权限。 克隆回购:

$ git clone https://<token>@github.com/<user>/<repo>.git

如果你已经克隆了repo,你可以修改你的远程设置:

$ git remote set-url origin https://<token>@github.com/<user>/<repo>.git
$ git pull
Already up to date.

我犯了一个很常见的错误。我使用剪辑命令xclip -sel剪辑< ~/.ssh/id_rsa复制。但是在粘贴到github键输入框期间,我使用退格删除了最后换行符,这实际上改变了公钥。

所以,总是复制和粘贴ssh公钥,因为它是没有删除最后换行。

我只是按照这个解释

我试过评估,很有效。

然后我尝试ssh -T git@bitbucket.org

然后我再次克隆。现在一切都很顺利