proxy 環境で [ssh: connect to host github.com port 22: Connection timed out] が発生する原因と解決方法です。
エラー発生例
/d/github
$git clone git@github.com:curict/test.git .
Cloning into '.'...
ssh: connect to host github.com port 22: Connection timed out
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
原因
Proxy環境下では ポート番号22 が使えないことがあります。そのために github のサーバーに接続できず、エラーとなります。解決方法
github の ssh 接続は ポート443番での接続も許可しているため、設定でポート22番から443番に変更します。設定手順
-
エクスプローラーで次の場所に移動します。
C:\Users\ログインユーザー名\.ssh
- [config]という名前のファイルを作成します。拡張子は不要です。
-
テキストエディタで作成した [config] ファイルを開き、次の内容を入力して保存します。
Host github.com User git Hostname ssh.github.com IdentityFile ~/.ssh/id_rsa Port 443 ProxyCommand connect.exe -H プロキシーサーバー名:ポート番号 %h %p
- 6 行目の プロキシーサーバー名とポート番号は、環境に合わせて修正します。サーバー名に[http://]は不要です。
- 4 行目は秘密鍵ファイルの指定です。ファイル名や場所を変更している場合は修正します。[~/]は、[C:\Users\ログインユーザー名\]と同じ意味です。
- github.com への ssh 接続時に 443ポートが使用されるようになります。
接続テスト
SSH で 接続したことのないホストに接続すると、接続してよいかの確認が行われます。キーボードで[yes]と入力し、[Enter]キーを押します。ここまでくれば、接続に成功しています。The authenticity of host '[ssh.github.com]:443 (<no hostip for proxy command>)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
検証環境
- git version 2.24.1.windows.2
- Microsoft Windows 10 Pro Version 1909 OS Build 18363.628