ssh:连接到主机 github.com 端口 22:连接被拒绝

jon*_*ona 20 ssh git connection github

因此,我按照如何将 SSH 密钥添加到 GitHub指南进行操作,并向 GitHub 和 SSH 代理添加了一个带有密码的新 SSH 密钥。现在,如果我ssh -T git@github.com按照指南中的描述运行以测试我是否正确设置了所有内容,它甚至不会提示我输入密码,而是立即返回ssh: connect to host github.com port 22: Connection refused. 我已经安装openssh-serveropenssh-client安装了 SSH 服务。

错误

帮助将不胜感激。

更新:当我尝试从朋友的 GitLab 实例克隆一个我有写访问权限的存储库时,它会抛出相同的错误。似乎这是 SSH 的问题,而不是密钥的问题。(我已将它们添加到实例中。)

小智 31

您是否尝试过使用端口 443,并添加ssh.子域前缀?

此命令将对其进行测试。您应该收到错误消息,因为不支持 shell。

ssh -T -p 443 git@ssh.github.com
Run Code Online (Sandbox Code Playgroud)

然后你可以使用完整的 URL 来指定项目路径,详见Stack Overflow 答案

ssh://git@ssh.github.com:443/yourname/reponame.git
Run Code Online (Sandbox Code Playgroud)

  • 谢谢!这对我有用,让我意识到我还必须将它添加到我的 ssh 配置文件中`# GitHub Account Host github.com HostName **ssh.github.com** Port **443** PreferredAuthentications publickey IdentityFile <path to您的私人 ssh 密钥>` *注意主机名和端口 (2认同)

小智 5

如果您的连接被拒绝,则意味着您实际上收到了一个数据包,表明您的目的地不接受您的连接。这可能意味着一些事情:

  1. github.com 已关闭(不太可能,但您可以随时在https://status.github.com/上查看它们的状态)

  2. 你有一个无效的 github.com IP 地址(在 /etc/hosts 或你的解析器中手动输入)它至少会阻止你的 IP 地址的 ssh

  3. 你在通往 github.com 的路上有一个防火墙,它阻止了 ssh 流量(例如本地防火墙或公司防火墙)