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_hosts
SSH接続ログを生成する
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.com
github.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: リモート ホストによって接続が閉じられました