众所周知,github那玩意现在不支持账号密码进入了。
于是,在新电脑了用了ssh连接方式。
一切就绪,啥ssh都搞好了,结果来了报错,您来瞧一瞧这报错:
$ git pull
kex_exchange_identification: read: Connection reset by peer
Connection reset by 20.205.243.160 port 22
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
大概是这么个报错,说连接啥这个ip这个端口,不能读到这个目录。一来,叫我去确认一下是不是有正确的进去的权利;二去,叫我去看这个git地址对不对,存不存在。
二话不说,我有事要办,于是,我就删了那个电脑的ssh,重新建一个,跟github那边再重新弄一遍,肯定是我哪里哪个步骤搞得不对头,导致人家不给我git github的东西。
重来一遍,还是报错,我得贴一遍那个报错给大家看看,虽说上边是有贴码了,报错如下:
就八九差不离是这意思,
C:\Windows\System32>git克隆git@github.com:GuanLola/interview-doc.git 克隆到“面试文档”. 20.205.243.166端口22关闭连接 致命:无法从远程存储库读取。 请确保您拥有正确的访问权限 并且存储库存在。
文档也由私有改成公开,还是这个样子。
那不行啊。git 报错 Connection reset by 20.205.243.160 port 22 解决。这问题解决不了,我做不了事啊。于是去查,很多教程都是说有可能就是我那个ssh连接github的步骤没弄对。可我试了几遍了,不行,那估计不是那个sshkey的毛病。想着说读不到那个仓库。
我说是啊,国内咱不是都是靠啥,靠魔法过去的吗?
好家伙,有可能是墙的问题,于是我去搞了那个host地址,估计也不成,那个ip解析那个域名地址全是要开魔法才能进去的,就是该hosts文件也无济于事啊。
后来想说,确实,这个咱开了代理,估计要往代理上去想问题了。
后来去查 github ssh,果真有苗头。
window要工具去代理一下ssh连接才行。
这个工具找到了用的这个connect这个工具。地址是这里,点开就给自动下载了。下完之后呢,甭管双击点击安装这事了,双击打开也是这种样子:
它估计不是这样做的,不用咱双击去运行安装之类的。
1. 下载 connect 工具
connect 工具是 corkscrew 的一个替代品,可以用来通过 HTTP/HTTPS 代理进行 SSH 连接。你可以在以下链接下载 Windows 版本的 connect 工具:
下载后,将 connect.exe 放到一个你喜欢的目录,比如 C:\Program Files\connect。
2. 配置 SSH 使用 connect 工具
接下来,你需要编辑 SSH 配置文件,以便使用 connect 工具通过代理连接 GitHub。
-
打开
Git Bash或任何你喜欢的终端。 -
编辑
~/.ssh/config文件(如果文件不存在,可以创建一个):bash
Copy
notepad ~/.ssh/config -
在
~/.ssh/config文件中添加以下内容:plaintext
Copy
Host github.com HostName ssh.github.com User git Port 443 IdentityFile ~/.ssh/id_rsa ProxyCommand "C:/Program Files/connect/connect.exe" -H 127.0.0.1:7890 %h %p注意:
C:/Program Files/connect/connect.exe是你下载的connect.exe的路径,请根据实际情况修改。127.0.0.1:7890是你的代理地址和端口,如果你使用的是其他代理工具(如 Clash、Shadowsocks 等),请根据实际情况修改。
3. 测试连接
保存配置文件后,你可以通过以下命令测试是否能够成功连接 GitHub:
bash
Copy
ssh -T git@github.com
如果一切正常,你应该会看到类似以下的输出:
plaintext
Copy
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
4. 拉取代码
现在你应该可以正常使用 git pull 或 git clone 等命令了。
bash
Copy
git pull origin main
其他注意事项
- 如果你使用的是其他代理工具(如 Clash、Shadowsocks 等),请确保代理工具已经正确配置并运行。
- 如果你使用的是 HTTP 代理而不是 SOCKS 代理,请确保
connect工具的-H参数正确配置。
通过以上步骤,你应该能够在 Windows 上通过代理使用 SSH 连接 GitHub。
对了,以此,上面被墙了的话,先是这步ssh -T git@github.com就过不去的。如果,比如说去git东西git不动了,先运行一下ssh -T git@github.com这行代码,这行代码要是
这样的话,就说明一是ssh到git上没过,二是被墙了,你本地用的魔法代理去连的那边,所以也要一些东西去代理ssh连接。
至于代理的那些地址啊端口啊,去设置-网络-代理那里去找。
好嘞!咱就到这了,拜了个拜。