记录一个Github推送的问题(ssh推送出现:Connection closed by 198.18.0.9 port 22)-软件工程牛翰社区-编程开发-牛翰网

记录一个Github推送的问题(ssh推送出现:Connection closed by 198.18.0.9 port 22)

一、前言:

在公司需要将一个文档推送到GitHub仓库,由于Github对Https的推送已经移除了对密码认证的支持(2021.8.13),所以想要进行身份验证就只能使用两种方式:

  • 使用Persional Access Token(PAT)
  • 使用SSH认证
    PAT认证太麻烦了,每次都要输入,这里就主要介绍使用SSH认证的方式。

二、Github-SSH认证

生成 SSH 密钥:

打开终端(Git Bash 或其他终端)。
运行以下命令生成 SSH 密钥:

ssh-keygen -t ed25519 -C "your_email@example.com"

按提示保存密钥(默认路径即可)。
设置一个安全的密码(可选)。
(其实一直回车就好了)

将 SSH 密钥添加到 SSH 代理:

启动 SSH 代理:

eval "$(ssh-agent -s)"

添加 SSH 私钥到代理:

ssh-add ~/.ssh/id_ed25519

如果使用的是 RSA 密钥,替换为:

ssh-add ~/.ssh/id_rsa
  1. 将 SSH 公钥添加到 GitHub:
    复制公钥内容:
cat ~/.ssh/id_ed25519.pub

或(如果是 RSA 密钥):

cat ~/.ssh/id_rsa.pub

登录 GitHub,进入 Settings -> SSH and GPG keys。

点击 New SSH key,将公钥内容粘贴到 Key 字段中,然后保存。

将远程仓库 URL 改为 SSH:

检查当前远程仓库 URL:

git remote -v

如果 URL 是 HTTPS 的(如 https://github.com/…),将其改为 SSH:

git remote set-url origin git@github.com:Vsonic12138/Draw.io.git
  1. 推送代码:
    之后就可以直接推送代码,无需输入用户名和密码:
git push -u origin main

三、问题解决

在第二节在GitHub上配置好SSH Key之后,可以尝试在终端当中输入:

ssh -T git@github.com

用以测试配置是否成功,如果出现类似:

Hi Vsonic12138! You've successfully authenticated, but GitHub does not provide shell access.

说明可以成功进行之后的仓库推送了,但是我出现了这样的提示:
图片[1]-记录一个Github推送的问题(ssh推送出现:Connection closed by 198.18.0.9 port 22)-软件工程牛翰社区-编程开发-牛翰网
说明访问被端口22拒绝了,此时我们可以通过配置.ssh文件来进行端口的替换。
终端当中键入:

nano ~/.ssh/config

编辑这个配置文件如下:

Host github.com
    Hostname ssh.github.com
    Port 443

将端口替换为443即可。

四、参考链接

https://paugram.com/tech/github-ssh-connection-closed-problem-with-proxy.html
https://chatgpt.com/share/677cc184-a598-8010-9a4b-5573460d97c0

来源链接:https://www.cnblogs.com/Vsonic12138/p/18657435

请登录后发表评论

    没有回复内容