返回

SSH连接GitHub报错“kex_exchange_identification: read: Connection reset by peer”的解决方案

IOS

前言

GitHub是一个流行的代码托管平台,它允许开发者存储、协作和管理代码。SSH(安全外壳协议)是一种安全的网络协议,可用于在本地计算机和远程服务器(如GitHub)之间建立加密连接。通过配置SSH,开发者可以在不输入密码的情况下连接到GitHub,从而简化工作流程。

然而,在配置SSH时,用户可能会遇到以下错误:

kex_exchange_identification: read: Connection reset by peer

此错误表示SSH客户端(例如Sourcetree)无法与GitHub服务器建立连接。这可能是由于多种原因造成的,包括网络问题、防火墙阻止或SSH配置错误。

解决方案

要解决此错误,请按照以下步骤操作:

1. 确认网络连接

确保您的计算机已连接到互联网,并且没有防火墙阻止SSH连接。尝试使用ping命令测试与GitHub服务器的连接:

ping github.com

如果ping命令返回响应,则表示您的计算机可以连接到GitHub。否则,请检查您的网络连接或防火墙设置。

2. 检查SSH密钥

SSH密钥是一对用于加密SSH连接的公钥和私钥。确保您已为GitHub生成了SSH密钥。要生成SSH密钥,请运行以下命令:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

替换your_email@example.com为您的电子邮件地址。这将在~/.ssh/目录中生成id_rsa(私钥)和id_rsa.pub(公钥)文件。

3. 将公钥添加到GitHub

登录您的GitHub帐户,然后导航到“设置”>“SSH和GPG密钥”。单击“新建SSH密钥”按钮,然后粘贴id_rsa.pub文件中的公钥。

4. 配置SSH客户端

在Sourcetree中,导航到“工具”>“选项”>“SSH”。选择“手动添加密钥”,然后输入您的私钥文件(id_rsa)的路径。

5. 测试SSH连接

在Sourcetree中,右键单击GitHub存储库并选择“SSH克隆”。如果连接成功,您应该能够克隆存储库而不会遇到任何错误。

其他提示

  • 如果您仍然遇到问题,请尝试禁用所有SSH代理(例如 pageant)。
  • 确保您的SSH客户端和GitHub服务器使用相同的SSH协议版本。
  • 检查GitHub服务器的SSH日志以获取有关错误的更多信息。

总结

通过按照本文中的步骤,您可以解决“kex_exchange_identification: read: Connection reset by peer”错误,并建立与GitHub的成功SSH连接。通过使用SSH,您可以简化工作流程并安全地管理您的代码。