SourceTree总是权限被拒绝(公钥)

时间:2018-08-02 09:25:02

标签: git macos gitlab atlassian-sourcetree

我将soureTree用于克隆ssh项目。

  1. 我已经创建了ssh密钥
  2. 我已经设置了gitlab ssh密钥设置
  3. 我已经ssh-add“ mysshkey”
  4. 我已经ssh-add -K'mysshkey'

当我打印ssh -T时,我可以在命令行中使其成功。 当我git clone时,以ssh方式pull,push ...仍然在命令行中起作用。(终端)

但是在sourcetree中仍然会出现错误:

Permission denied (publickey)

我该如何解决?

2 个答案:

答案 0 :(得分:1)

您收到此消息是因为它无法使用SSH代理提供的任何密钥对您进行身份验证。要验证这种情况,请执行以下操作:

php bin/console doctrine:migrations:migrate

这将尝试为其建立与Mercurial的连接。如果密钥正确装入,您应该收到与以下类似的响应。

如果看不到消息,可能是由多种因素引起的,但这是最常见的:

-您的公钥未加载

要检查是否已加载公钥,请执行以下操作:

  1. 打开浏览器并登录到原点。

  2. 显示``SSH密钥''页面。它显示所有现有键的列表。

  3. 如果没有列出任何键,请设置一个。

-您的身份未加载到SSH代理中

如果您的SSH代理不知道提供密钥,则连接将失败。要找出您的SSH代理当前提供的密钥并添加它们,请执行以下操作:

ssh -T 

然后,如果您没有看到列出的密钥,请通过

添加
$ ssh-add -l

有关更多信息,请查看我们的《 SSH问题排查》完整指南。

-您无权在本地文件系统上创建存储库

如果收到错误“权限被拒绝”,则git或mercurial也可能无权在本地创建项目文件夹。检查您尝试检出项目的目录的权限,并确保您具有写权限。

ssh-add ~/.ssh/identity

发现/ var / log / gitlab / sshd / current内部存在多次消息: 身份验证被拒绝:所有权错误或文件/var/opt/gitlab/.ssh/authorized_keys的模式 之后,我使用以下命令将该文件的所有权从99:users更改为git:users: chown git:用户的authorized_keys

答案 1 :(得分:1)

我下载了SourceTree 2.7.6,并遇到了相同的问题。 我认为@ Frankie_0927是正确的,私钥必须命名为id_rsa,并且必须在ssh代理中注册。

对于其他人,遇到此问题: 请尝试按照以下链接中的说明生成一对密钥: https://help.github.com/articles/connecting-to-github-with-ssh/ 将私钥id_rsa存储在〜/ user / YOURUSERNAME / .ssh(mac的路径)中,并将公钥发布到github帐户中。 然后运行

ssh-add -l

您将看到

The agent has no identities.

所以您运行

ssh-add -K ~/.ssh/id_rsa

将该密钥添加到ssh代理中。 之后,运行

ssh-add -l

再次,您将看到已添加密钥,并且应该解决了问题。