当我尝试使用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
连接成功。
我可以做些什么来了解哪里出了问题以及应该纠正什么?
谢谢,
答案 0 :(得分:10)
对我来说,这是因为:
GIT_SSH=C:\Program Files\PuTTY\plink.exe
)我卸载了PuTTY 0.63和downloaded并安装了最新版本的PuTTY(此时为0.70),这解决了我的问题。
答案 1 :(得分:5)
如果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 answer到Git with SSH on Windows有很多赞成票。我避免使用Windows,因此我不知道这是否会有所帮助。 (我甚至不知道你是否因为你没有提到它而在Windows上。)
请注意Git version 2.3.0 added GIT_SSH_COMMAND
和Git 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.在所有情况下,确定哪个ssh Git正在运行是很重要的,并确保它运行一个实际工作的。有关所有选项变量及其功能的说明,请参阅the top level Git documentation。此处的链接指向可能与您自己的Git版本不匹配的网页,因此,如果您的Git已经很老,请考虑运行git --help git
来阅读该版本。
答案 2 :(得分:4)
问题出在GIT_SSH上。这个变量之前是由putty设定的。 我删除了这个env变量,问题已经解决了
答案 3 :(得分:1)
这可能与GitHub removing weak crypto有关。这发生在2018年2月22日左右。
答案 4 :(得分:0)
我一直在使用SourceTree,然后使用腻子,然后使用open-ssh。检查GIT_SSH
env变量值时,实际上是一团糟,并且正在使用与SourceTree一起安装的腻子。要使用open-ssh,需要删除此env变量。 (不使用腻子)
对于新手,我正在使用此代码段通过open-ssh“登录”到github:
eval $(ssh-agent -s) && ssh-add ~/.ssh/mySHHKey
编辑:没关系,我昨天成功连接了,但是现在它停止了工作。...同时使用油灰进行选美。