emil@DESKTOP-1I1B1NM:~$ git clone [email protected]:EmilYoung2004/git_test.git
Cloning into 'git_test'...
kex_exchange_identification: Connection closed by remote host
fatal: Could not read from remote repository
Please make sure you have the correct access rights
and the repository exists.
emil@DESKTOP-1I1B1NM:~$ ssh -T [email protected]
kex_exchange_identification: Connection closed by remote host
如你所见,我正在尝试从 Microsoft Store 中的 Ubuntu 20.04 应用程序连接到 github。这真的很烦人,因为在解决这个问题之前我无法继续我正在做的事情。有什么我可以改变的来防止这个错误发生吗?
有东西告诉我连接到 Github 本身时出错,但我不知道
我正在学习,所以不要让答案太复杂
提前致谢
答案1
请确保您拥有正确的访问权限
这是错误的关键部分。基本上,github 拒绝通过 SSH 访问该存储库,因为您没有使用您帐户或该存储库上的密钥进行身份验证。
在 Ubuntu shell 中,使用 检查是否已生成 SSH 密钥ls -la ~/.ssh
。如果您有密钥,您可能会看到其中几个名为id_rsa
和的文件id_rsa.pub
。如果没有,那也没关系,您可以使用 生成密钥ssh-keygen
并按照提示操作(接受默认值就可以了)。
现在你有了密钥,你需要将公钥添加到你的 github 帐户。这里有一点需要注意的id_rsa
是,你的私人的密钥。请保密。切勿将其提供给任何人,切勿共享、在线发布等等id_rsa.pub
。这是您的公钥。这是您要放在要进行身份验证的其他设备上的密钥,在本例中是 Github。将公钥提供给其他人/服务没有问题。
使用 输出您的公钥cat id_rsa.pub
并复制其输出的文本。然后在浏览器中转到 Github,确保您已登录,单击右上角的用户图标,然后转到settings
。在左侧菜单中,您将看到SSH and GPG Keys
。单击它(或直接转到https://github.com/settings/keys如果您遇到问题)。单击New SSH Key
,在标题中输入一个标识密钥来源计算机的名称,然后将公钥粘贴到字段中Key
。点击Add SSH Key
,您就完成了。
您现在应该可以通过 SSH 访问 clone,因此请再次尝试 git clone 并查看其进展如何。
注意:您也可以通过 HTTPS 等方式克隆,这样可以让您解决这个问题,因为您的 repo 是公开的,但是最好为 SSH 设置密钥认证并从长远来看沿着这条路径走。