git 无法通过 ssh 连接到 github

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/32386975/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-09-19 11:20:42  来源:igfitidea点击:

can't connect to github via ssh

gitgithubssh

提问by Benjamin

I tried to clone one of my repositories on github from my newly installed linux machine running manjaro with fluxbox. i set up the user.name and user.email and uploaded the correct ssh key. but i always get

我试图从我新安装的运行 manjaro 的 linux 机器和fluxbox 克隆我在 github 上的一个存储库。我设置了 user.name 和 user.email 并上传了正确的 ssh 密钥。但我总是得到

The authenticity of host 'github.com (192.30.252.129)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? 
Host key verification failed.
fatal: Could not read from remote repository.

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

I googled it and found that i should do ssh-keygen -R github.comwhich should delete github from my known_hosts file but the known_hosts file doesn't even exist yet, because i just finished setting up a new linux install.

我用谷歌搜索它,发现我应该做ssh-keygen -R github.com这应该从我的 known_hosts 文件中删除 github 但 known_hosts 文件甚至还不存在,因为我刚刚完成了一个新的 linux 安装。

so i tried ssh -vT git@githubwhich gave me

所以我试过ssh -vT git@github这给了我

ssh -vT [email protected]
OpenSSH_7.1p1, OpenSSL 1.0.2d 9 Jul 2015
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Connecting to github.com [192.30.252.128] port 22.
debug1: Connection established.
debug1: identity file /home/masterkraft0r/.ssh/id_rsa type 1
debug1: key_load_public: No such file or directory
debug1: identity file /home/masterkraft0r/.ssh/id_rsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/masterkraft0r/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/masterkraft0r/.ssh/id_dsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/masterkraft0r/.ssh/id_ecdsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/masterkraft0r/.ssh/id_ecdsa-cert type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/masterkraft0r/.ssh/id_ed25519 type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/masterkraft0r/.ssh/id_ed25519-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_7.1
debug1: Remote protocol version 2.0, remote software version libssh-0.7.0
debug1: no match: libssh-0.7.0
debug1: Authenticating to github.com:22 as 'git'
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client [email protected] <implicit> none
debug1: kex: client->server [email protected] <implicit> none
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY
debug1: Server host key: ssh-rsa SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8
The authenticity of host 'github.com (192.30.252.128)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? 
Host key verification failed.

which is way over my head. can somebody tell me what went wrong and maybe how to fix this mess?

这是在我的头上。有人可以告诉我出了什么问题,也许如何解决这个烂摊子?

回答by Saehun Sean Oh

Did you try to add github as known host?

您是否尝试将 github 添加为已知主机?

If you have an existing known_hostsfile and do not want to overwrite (as @Puce suggested in the comment), use this.

如果您有一个现有known_hosts文件并且不想覆盖(如@Puce 在评论中建议的那样),请使用它。

ssh-keyscan -t rsa github.com >> ~/.ssh/known_hosts

This will add the rsa key to the end of the known_hosts.

这会将 rsa 密钥添加到 known_hosts 的末尾。

If you have no idea what known_hostsis/means, or you never engaged with it for sure, you can simply write a new one, but note that this will remove the existing one if you had any.

如果你不知道是什么known_hosts/意味着什么,或者你从来没有肯定地参与过它,你可以简单地写一个新的,但请注意,如果你有的话,这将删除现有的。

ssh-keyscan -t rsa github.com > ~/.ssh/known_hosts

回答by emmmphd

If you just want to clone the repository, but you also use bitbucket or any other git tools, try to use httpsinstead of ssh.

如果你只是想克隆库,但是你也可以使用到位桶或任何其他git的工具,尝试使用https替代ssh

回答by Zulqarnain

This problem also happens to me when set the origin with newly generated ssh key due to re-installation of windows.

由于重新安装 Windows,使用新生成的 ssh 密钥设置原点时也会发生此问题。

When I Update the ssh key path (new generated) it solved my problem using the following code

当我更新 ssh 密钥路径(新生成的)时,它使用以下代码解决了我的问题

 eval $(ssh-agent -s)
 ssh-add /d/key    **(path of new key d:/key)**

回答by Doggy-B

I'm no expert on git, but looking at this it seems like something was wrong with the connection between the server and your PC. It says:

我不是 git 方面的专家,但看看这个,似乎服务器和你的 PC 之间的连接有问题。它说:

    Host key verification failed.
    fatal: Could not read from remote repository.

That sounds like something went wrong when you received the data. Have you tried it multiple times and gotten the same response?

当您收到数据时,这听起来好像出了点问题。您是否尝试过多次并得到相同的响应?

Try checking your internet connection, or if github was temporarily offline.

尝试检查您的互联网连接,或者 github 是否暂时离线。