【问题标题】:SSH Key Keeps Asking for Password on GitlabSSH 密钥在 Gitlab 上不断询问密码
【发布时间】:2014-11-20 03:23:11
【问题描述】:

我已经调试这个问题一两个小时了。

我目前正在使用 Gitlab 和 Mac OS X 10.9.2。

今天,我试图从我们的主分支git pull origin master,以便我可以获取最新版本进行开发。我一直使用这些配置,不记得更改任何内容。此配置一直有效,并且从未提示我输入密码。今天,我收到了这个错误:

My-MacBook-Pro:branch_name loop$ git pull origin master

git@domain 的密码:

这是我的~/.ssh/permissions:

My-MacBook-Pro:.ssh loop$ ls -l

total 24

-rw-------  1 loop  staff  1766 Oct 31  2013 github_rsa

-rw-r--r--  1 loop  staff   403 Oct 31  2013 github_rsa.pub

-rw-r--r--  1 loop  staff  2408 Sep 15 15:08 known_hosts

我尝试了各种方法:

  1. 正在重启com.openssh.sshd

  2. 正在重启org.openbsd.ssh-agent

  3. 我确保我在 Gitlab 上的公钥与我的 github_rsa.pub 相同,并且确实是相同的。

  4. 我已取消注释 sshd_configPasswordAuthentication no

  5. 检查了/var/log/authd.log 是否有与 SSH 相关的错误,但没有任何相关性。

可能是什么问题?

【问题讨论】:

    标签: macos git ssh


    【解决方案1】:

    将文件 github_rsa 重命名为 id_rsa。

    SSH 在您家的 .ssh 文件夹中通过“名称”id_rsa 查找私钥。

    现在找不到了,因为你重命名了。

    PS:当您在 SSH 中遇到问题时,请尝试使用选项 -vvv 运行它,以便获得详细的输出!

    希望这能解决问题!

    祝你好运!

    【讨论】:

    • 如果它一直与github_rsa 合作,这个名字会是原因吗?你如何运行-vvv?执行ssh -vvvsshd -vvv 只会提示帮助部分弹出(表示找不到命令)。
    • 以前可以用吗?您能够进行无密码访问吗?
    • 我把github_rsa的名字改成了id_rsa。在使用git pull origin master 时,我得到这个提示:Enter passphrase for key '/Users/loop/.ssh/id_rsa':
    • 在生成密钥时,您会给出一个密码。这就是它要求你不要的! :)
    • 这真的很有趣。我之前用过github_rsa,它从来没有提示我输入git URL的密码..是什么突然导致它这样做?
    【解决方案2】:

    通过为 Gitlab 生成一个没有密码的新公钥/私钥来解决此问题。

    创建一个新的 SSH 密钥:

    ssh-keygen -t rsa -C "name@domain.com"

    注意:对于这种情况,当它提示我输入密码时,我将其留空,因为此密钥仅供内部使用。

    转储内容:

    猫~/.ssh/id_rsa.pub

    最后,复制内容添加到Gitlab。

    【讨论】: