走 ssh プロトコルで github に接続する際には、通常 ssh の config ファイルを設定する必要があります。
一般的に、設定ファイルには以下のいくつかのフィールドがあります。
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/github_rsa
Host
ホスト設定の識別子。
HostName
:ホストのアドレスまたはドメイン名。
User
:ホストにログインするためのユーザー名。
IdentityFile
:認証に使用する秘密鍵ファイルのパス。
github.com
ドメイン名の解決に問題が発生した場合、https://www.ipaddress.com/ で ssh.github.com
に対応するアドレス(仮に 140.82.xxx.xx とします)を探し、HostName
フィールドの内容を置き換えます。
その後、コマンドラインインターフェースで ssh -T ssh@github.com
を使用して接続をテストします。
もし応答が次のようであれば、
ssh: connect to host 140.82.xxx.xx port 22: Connection timed out
443 ポートを強制的に使用することを試みることができます。つまり、ssh -T -p 443 git@github.com
です。
接続が成功した場合、応答は次のようになります。
Hi [YOUR_USERNAME]! You've successfully authenticated, but GitHub does not provide shell access.
この時、config をさらに修正することを忘れないでください。
最も便利な方法は直接置き換えることです。
Host github.com
HostName 140.82.xxx.xx # modified
User git
IdentityFile ~/.ssh/github_rsa
または、新しい設定を追加することもできます。
# original (and temporarily unavailable)
Host github.com
HostName github.com
User git
IdentityFile ~/.ssh/github_rsa
# added
Host ssh.github.com
HostName 140.82.xxx.xx
User git
IdentityFile ~/.ssh/github_rsa
Port 443
PreferredAuthentications publickey
TCPKeepAlive yes
この時、ssh -T git@ssh.github.com
を使用して接続を検出できます。しかし、問題が発生する可能性があり、git を使用する際に少し手間がかかります。なぜなら、Host
識別子が変更されたからです(github.com
から ssh.github.com
に変わりました)。