解決 ssh: ホスト github.com ポート 22 に接続: 接続がタイムアウトになり、kex_exchange_identification

1. 問題点

プロジェクトのクローン作成やその他の Git 操作は実行できません。接続検出コマンド実行時にssh -T git@github,comエラーが発生します。
ssh:connect to host github.com port 22: Connection timed out
即:连接22端口超时
ここに画像の説明を挿入します

涉及到的文件
C:\Users\JIACHENGER.ssh\config
C:\Users\JIACHENGER.ssh\github_id_rsa
C:\Users\JIACHENGER.ssh\github_id_rsa.pub

C:\Users\JIACHENGER\.ssh\known_hostsSSH接続ログを生成する

host文件
C:\Windows\System32\drivers\etc\hosts
IPおよびC:\Windows\System32\drivers\etc\ 域名hosts が本地映射文件含まれている限り在本机中查到了指定的域名、検索は続行されませんDNS(域名系统)
Windows がローカル DNS ドメイン名解決ホスト ファイル構成を設定する

配置SSH公私钥可参考我这篇: GitHub&Gitee&Gitlab&JihuLab が異なる SSH 公開キーと秘密キーを同時に生成、構成、検出する詳細なプロセス

2. 問題を解決する

2.1 ssh: ホスト github.com ポート 22 に接続: 接続がタイムアウトしました

//详细连接过程,-v表示verbose  
ssh -vT [email protected]
或者
ssh -Tvvv [email protected]

//nslookup是域名解析工具,8.8.8.8是Google的DNS服务器地址
nslookup github.com 8.8.8.8

//使用本机已经设置好的DNS服务器进行域名解析
nslookup github.com

ここに画像の説明を挿入します
ここに::1ありますIPV6的localhost地址127.0.0.1ですIPV4的localhost地址これは基本的に、GitHub に接続できない原因DNS域名解析出了问题あると考えられます。GitHub的域名被解析成了本地localhost的ip地址

2.2 kex_exchange_identification: リモート ホストによって接続が閉じられました

此时又出现了一个问题

kex_exchange_identification: Connection closed by remote host
Connection closed by ::1 port 22

ここに画像の説明を挿入します

C:\Users\JIACHENGER\.ssh\known_hostsバックアップして、しばらくknown_hostsしてからもう一度内容清空実行重新执行检测连接命令 ssh -T git@github,comしますSSH 公開キーと秘密キーを同時に構成した他のプラットフォームは、正常に再接続できます (プロセス中に指示する必要があります)。以下に示すように、状態になりますGitHub&Gitee&Gitlab&JihuLab が同時に異なる SSH パブリックを生成、構成、検出する詳細なプロセスおよび秘密偶尔可以连接成功还是会报同样的错误
ここに画像の説明を挿入します
除了GitHub以外(Gitee&Gitlab&极狐(JihuLab))输入yes确认确认添加主机到可信任列表本机在之前第一次生成SSH公私钥的时候,没有配置访问密码C:\Users\JIACHENGER\.ssh\known_hosts生成连接日志

ここに画像の説明を挿入します

2.3 ポートの除外

C:\Users\JIACHENGER\.ssh\config、構成でポートが指定されていない場合、SSH 接続にはデフォルトでポート 22 が使用されます。:代わりに、
使用443端口(默认情况)config配置如下:
注意GitHub ポート 443 が主机名Hostname使用されますssh.github.comgithub.com

# github
# ssh -T [email protected]
Port 443    
#Port 22 
Host github.com
Hostname ssh.github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa

使用22端口(默认情况,不配置也是使用22端口)config配置如下:

# github
# ssh -T [email protected]
#Port 443    
Port 22 
Host github.com
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa

仍然还会报同样的错误说明大概率和端口没有关系:
ここに画像の説明を挿入します

2.4 問題を解決するには、ホストで GitHub ドメイン名のマッピングを手動で構成します

host文件C:\Windows\System32\drivers\etc\hosts手动配置GitHub域名映射ファイル末尾に行を追加します140.82.113.4 github.comここでのドメインgithub.com名はC:\Users\JIACHENGER\.ssh\configファイル内の値と一致しておりGitHub配置的Hostname、両方とも一致していますgithub.com

# github
# ssh -T [email protected]
#Port 443  
#注意:GitHub端口 443 的主机名Hostname为 ssh.github.com,而不是 github.com。  
#Port 22  此处注释,默认也使用22端口
Host github.com
Hostname github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa

IPそして、 である限り域名、私たちは検索を続けることはありません。参考: Windows がローカル DNS ドメイン名解決のホスト ファイル構成を設定する本地映射文件在本机中查到了指定的域名DNS(域名系统)

# Added by Docker Desktop
192.168.1.14 host.docker.internal
192.168.1.14 gateway.docker.internal
# To allow the same kube context to work on the host and the container:
127.0.0.1 kubernetes.docker.internal
# End of section


#2023-9-19 19:08:03 配置
#解决ssh:connect to host github.com port 22: Connection timed out等问题
#在hosts中手动配置GitHub域名映射

140.82.113.4 github.com

GitHub ドメイン名のマッピングを手動で構成する場合、ファイル , でポートを構成するC:\Windows\System32\drivers\etc\hosts中必要はありませんC:\Users\JIACHENGER\.ssh\config默认使用22端口
如下

# github
# ssh -T [email protected]
#Port 443    
#Port 22 
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/github_id_rsa

如果配置了端口場合、次のエラーが報告されます。

ここに画像の説明を挿入します

在hosts中手动配置GitHub域名映射后检测GitHub连接(ポートは構成で構成されておらず、デフォルトではポート 22 が使用されます) 成功连接:

$ ssh -T [email protected]
Hi DJCKING! You've successfully authenticated, but GitHub does not provide shell access.

ここに画像の説明を挿入します

3. 参考資料


SSH GitHub&Gitee&Gitlab&JihuLab を使用して HTTPS ポートでのSSH 接続をテスト
し、異なる SSH 公開キーと秘密キーを同時に生成、構成、検出します 詳細なプロセス Git の問題: 「
ssh:connect to host github.com port 22: Connection timed out」ピットを解決します
: ssh: ホスト github.com ポート 22 に接続: 接続が拒否されました
Windows がローカル DNS ドメイン名解決ホスト ファイル設定をセットアップしました
ssh リモート ログイン エラー: kex_exchange_identification: リモート ホストによって接続が閉じられました

おすすめ

転載: blog.csdn.net/qyfx123456/article/details/133038067