Sunforger

Sunforger

ssh直連github時configファイルの設定

走 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 に変わりました)。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。