Ubuntuを使用する際、IPv6 環境やポート22 が閉じている場合に SSH でGitHub/GitLabを操作するための対処法

私は GitHub と GitLab をどちらも使っています。
ほぼ同時期に以下のことが起き、GitHub/GitLab との通信ができなくなりました。

  • ある場所のネットワークがIPv6に切り替わった。
  • 勤務先のひとつのネットワークが更新され、ポート22が閉じられた。

それぞれ調べて、以下のことがわかりました。

  • 2025年10月現在、GitHub/GitLab はIPv6を完全にサポートしきれていないようです。IPv4の方が確実につながります。IPv4にするためには、 “AddressFamily inet” と config ファイルに記載します。
  • ポート22が閉じられている場合、ポート443 を使うことで接続できます。その際、GitHubのホスト名は “ssh.github.com”, GitLabのホスト名は “altssh.gitlab.com” となります。

これらを反映するためには、 ホームディレクトリの下の .ssh ディレクトリに config ファイルを作成します。
その中に以下を記載します。


<h1>GitHub</h1>

Host github.com
  Hostname ssh.github.com
  User git
  Port 443
  IdentityFile ~/.ssh/id_ed25519
  AddressFamily inet

<h1>GitLab</h1>

Host gitlab.com
  Hostname altssh.gitlab.com
  User git
  Port 443
  IdentityFile ~/.ssh/id_ed25519
  AddressFamily inet

こうしたところ、私の作業する場所はどこでも GitHub/GitLab にSSH接続できるようになりました。

ちなみに正しく接続できたかは、 以下のコマンドで確認できます。


<h1>GitHub</h1>

ssh -T git@github.com

<h1>GitLab</h1>

ssh -T git@gitlab.com

そうすると、ともに

Enter passphrase for key '/home/ユーザ名/.ssh/id_ed25519': 

と聞いてきますので、パスフレーズを入れると、

GitHubの場合は

Hi ユーザ名! You’ve successfully authenticated, but GitHub does not provide shell access.

GitLabの場合は

Welcome to GitLab, @kytk!

となります。

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください