【问题标题】:git cant find correct sshgit 找不到正确的 ssh
【发布时间】:2018-08-06 01:27:55
【问题描述】:

当我尝试使用 git 连接时,我看到了这个错误

$ git clone git@github.com:MyCompany/eagle.git --verbose                                         
Cloning into 'eagle'...                                                                        
FATAL ERROR: Couldn't agree a key exchange algorithm (available: curve25519-sha256@libssh.org,ecdh-sh
a2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521)                                                   
fatal: Could not read from remote repository.                                                        

Please make sure you have the correct access rights                                                  
and the repository exists.

我设置了所有键等,连接工作正常,因为当我这样做时 ssh -v git@github.com连接成功。

我可以做些什么来了解哪里出了问题以及应该纠正什么?

谢谢,

【问题讨论】:

    标签: git github ssh ssh-keys


    【解决方案1】:

    如果ssh -T git@github.com 给你:

    Hi <name>! You've successfully authenticated, but GitHub
    does not provide shell access.
    

    消息,这意味着您的 ssh 设置正在运行。如果你得到一个:

    FATAL ERROR: Couldn't agree a key exchange algorithm ...
    

    这意味着您的 ssh 设置没有工作。显然这里存在矛盾,最有可能的罪魁祸首是您安装了两个不同的 ssh 命令:一个是您正在使用的,它可以工作,另一个是 Git 正在使用,它没有。

    This answerGit with SSH on Windows 有很多赞成票。我避免使用 Windows,所以我不知道这是否会有所帮助。 (我什至不知道你是否在 Windows 上,因为你没有提到它。)

    请注意Git version 2.3.0 added GIT_SSH_COMMANDGit version 2.10.0 added core.sshCommand to set a value for GIT_SSH_COMMAND。从那时起,Git version 2.13.0 learned some new tricks for dealing with issues tied to variations of ssh that demand different option letters. 在所有情况下,重要的是要弄清楚 Git 正在运行哪个 ssh,并确保它运行一个真正有效的。请参阅the top level Git documentation 了解所有选项变量及其作用的说明。此处的链接指向的网页可能与您自己的 Git 版本不匹配,因此如果您的 Git 非常旧,请考虑运行 git --help git 来阅读该版本。

    【讨论】:

      【解决方案2】:

      问题出在 GIT_SSH 中。这个变量之前已经被putty设置过了。 我删除了这个环境变量,问题已经解决了

      【讨论】:

        【解决方案3】:

        这可能与 GitHub removing weak crypto 有关。这发生在 2018 年 2 月 22 日左右。

        【讨论】:

          【解决方案4】:

          对我来说,这是因为:

          1. 我已将 Git 配置为使用 PuTTY(即GIT_SSH=C:\Program Files\PuTTY\plink.exe
          2. 我运行的是旧版本的 PuTTY(例如 0.63)
          3. GitHub 最近有removed weak cryptography standards

          我卸载了 PuTTY 0.63 和 downloaded 并安装了最新版本的 PuTTY(此时为 0.70),这为我解决了问题。

          【讨论】:

          • 我也升级了我的 PuTTY,但在切换到不同的密钥类型后(试图找出列表中匹配的一种,但我遇到了错误)。我最终升级 PuTTY 只是因为 Pagaent 无法加载我刚刚创建的密钥!
          【解决方案5】:

          我一直在使用 SourceTree,然后是 putty,然后是 open-ssh。在检查GIT_SSH env 变量值时,实际上做的一团糟,并且正在使用随 SourceTree 安装的腻子。使用 open-ssh 需要删除这个环境变量。 (不使用腻子)

          对于新手,我使用这个 sn-p 通过 open-ssh “登录”到 github: eval $(ssh-agent -s) &amp;&amp; ssh-add ~/.ssh/mySHHKey

          编辑:没关系,我昨天成功连接,但现在它停止工作了...同时使用带有腻子的选美。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2013-10-12
            • 2013-02-03
            • 2016-08-01
            • 1970-01-01
            • 2022-11-12
            • 2017-02-12
            • 1970-01-01
            • 2011-01-26
            相关资源
            最近更新 更多