GitHubのSSH接続がタイムアウトする場合の対処法|443番ポートへ切り替える手順

社内ネットワークからGitHubへ接続したときに、ssh: connect to host github.com port 22: Connection timed outと表示される場合は、ファイアウォールなどでSSHの標準ポートである22番が遮断されている可能性があります。

GitHub.comでは、組織のネットワーク管理者が許可していることを前提に、ssh.github.comの443番ポートを使ってSSH接続できます。まず設定を変更せずに接続をテストし、表示されたホスト鍵をGitHub公式情報と照合してから、SSH設定を切り替えるのが安全です。([GitHub Docs][1])

ただし、443番ポートを使っても通信内容がHTTPSになるわけではありません。通信プロトコルはSSHのままなので、Webプロキシやセキュリティ製品の設定によっては接続できないことがあります。ネットワーク制限を無断で回避せず、必ず管理者が許可する経路を利用してください。([GitHub Docs][1])

目次

GitHubのSSH接続が22番ポートで遮断されるときの443番接続

GitHub.comへの通常のSSH接続では、次のように22番ポートが使われます。

ssh -T [email protected]

社内ネットワークなどで22番ポートが遮断されている場合は、GitHubが用意している次の接続先を利用できます。

ssh -T -p 443 [email protected]

重要なのは、443番ポートの接続先がgithub.comではなく、ssh.github.comであることです。次の指定ではありません。

ssh -T -p 443 [email protected]

GitHub公式ドキュメントでも、443番ポートではssh.github.comを使用するよう案内されています。([GitHub Docs][1])

最初にエラーの種類を確認する

Gitが使えない原因は、必ずしもポート遮断とは限りません。表示されているエラーによって、確認すべき場所が異なります。

主なエラー考えられる原因次に確認すること
Connection timed outポート遮断、経路障害、プロキシ制限443番ポートへの接続を試す
Connection refused接続先またはネットワーク機器が通信を拒否接続先、ポート、管理者設定を確認
Permission denied (publickey)SSH鍵の未登録、選択ミス、権限の問題GitHubのSSH鍵登録と使用中の鍵を確認
Could not resolve hostnameDNSまたはホスト名の誤りssh.github.comの綴りとDNSを確認
ホスト鍵の警告初回接続、接続先変更、登録済み鍵との不一致公式フィンガープリントと照合

Permission denied (publickey)まで進んでいる場合、少なくともGitHubのSSHサービスまでは到達できています。この場合は、ポートよりもSSH鍵の設定を確認する必要があります。

443番ポートへ切り替える手順

ネットワーク管理者に許可状況を確認する

設定変更の前に、次の通信が組織のルール上許可されているか確認します。

項目内容
接続先ssh.github.com
ポートTCP 443
プロトコルSSH
用途GitHub.comのGit操作

「443番ポートが開いている」だけでは十分ではありません。社内のWebプロキシがHTTPS通信だけを許可している場合、SSHプロトコルの通信は遮断される可能性があります。GitHub公式ドキュメントでも、プロキシサーバーが接続を妨げる場合があると案内されています。([GitHub Docs][1])

管理者へ問い合わせる際は、「制限を回避したい」ではなく、次のように具体的に確認すると伝わりやすくなります。

GitHub.comの公式手順に従い、ssh.github.comのTCP 443番ポートへSSH接続する方法を利用したいと考えています。この通信は社内ポリシー上許可されていますか。

現在のSSH設定をバックアップする

SSH設定ファイルがすでに存在する場合は、変更前にコピーを保存します。

WindowsのPowerShellでは、次のようにバックアップできます。

if (Test-Path "$HOME\.ssh\config") {
    Copy-Item "$HOME\.ssh\config" "$HOME\.ssh\config.bak"
}

macOSやLinuxでは、次のように保存できます。

[ -f ~/.ssh/config ] && cp ~/.ssh/config ~/.ssh/config.bak

SSH設定ファイルは通常、次の場所にあります。

OS設定ファイル
WindowsC:\Users\ユーザー名\.ssh\config
macOS~/.ssh/config
Linux~/.ssh/config

Windowsでメモ帳を使う場合は、ファイル名がconfig.txtにならないよう注意してください。拡張子のないconfigとして保存します。

設定変更前に443番ポートをテストする

まずはSSH設定ファイルを変更せず、次のコマンドを実行します。

ssh -T -p 443 [email protected]

接続でき、SSH鍵の認証にも成功すると、ユーザー名を含む次のようなメッセージが表示されます。

Hi USERNAME! You've successfully authenticated, but GitHub does not provide shell access.

GitHubはSSH経由のシェル操作を提供していないため、「shell accessを提供しない」という表示は異常ではありません。この認証成功メッセージが表示されれば、443番ポートを利用したGit操作へ進めます。([GitHub Docs][1])

初回接続ではホスト鍵を必ず照合する

初めてssh.github.comの443番ポートへ接続すると、次のような確認が表示されることがあります。

The authenticity of host '[ssh.github.com]:443' can't be established.
ED25519 key fingerprint is SHA256:...
Are you sure you want to continue connecting?

ここで、内容を確認せずにyesを入力してはいけません。表示された鍵の種類とフィンガープリントを、GitHub公式のSSH key fingerprintsと照合します。

2026年9月19日時点でGitHub公式ドキュメントに掲載されている主なフィンガープリントは次のとおりです。

鍵の種類フィンガープリント
Ed25519SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU
ECDSASHA256:p2QAMXNIC1TJYWeIOttrVc98/R1BUFWu3/LiyKgUfQM
RSASHA256:uNiVztksCsDhcc0u9e8BujQXVUpKZIDTMczCvj3tD2s

フィンガープリントは将来変更される可能性があるため、実際に接続するときはGitHub公式ページの最新情報も確認してください。表示された値が一致しない場合は接続を中止し、ネットワーク管理者へ確認します。([GitHub Docs][2])

SSH設定に443番ポートを登録する

テストに成功したら、~/.ssh/configをテキストエディターで開き、次の設定を追加します。

Host github.com
    HostName ssh.github.com
    Port 443
    User git

それぞれの項目には、次の役割があります。

設定意味
Host github.comGitやSSHでgithub.comを指定したときに適用する
HostName ssh.github.com実際の接続先をssh.github.comへ変更する
Port 443SSHの接続ポートを443番へ変更する
User gitGitHubのSSH接続で使用するユーザー名を指定する

この設定を行うと、既存のリモートURLが次の形式でも、接続先とポートが自動的に切り替わります。

[email protected]:OWNER/REPOSITORY.git

既存のHost github.com設定がある場合は、同じブロックを複数追加するのではなく、現在の設定内容を確認して統合してください。IdentityFileなどで使用する秘密鍵を指定している場合は、その設定を消さずに残します。

GitHub公式でも、Host github.comに対してssh.github.comと443番ポートを指定する方法が案内されています。([GitHub Docs][1])

設定後の接続を確認する

設定を保存したら、今度はポートを明示せずに接続します。

ssh -T [email protected]

認証成功メッセージが表示されれば、github.com宛てのSSH接続が443番ポートへ切り替わっています。

続いて、対象リポジトリでGit操作を確認します。

git remote -v
git fetch origin

すでにリモートURLが次のSSH形式になっていれば、通常はURLを変更する必要はありません。

[email protected]:OWNER/REPOSITORY.git

設定を使わず、一度だけ443番ポート経由でクローンしたい場合は、次の形式も利用できます。

git clone ssh://[email protected]:443/OWNER/REPOSITORY.git

このURLでは、接続先と443番ポートを直接指定しています。([GitHub Docs][1])

443番ポートでも接続できない場合の切り分け

ssh.github.comの443番ポートでタイムアウトする

次のコマンドでもタイムアウトする場合は、SSH設定の問題ではなく、ネットワーク経路で通信が遮断されている可能性が高くなります。

ssh -T -p 443 [email protected]

この場合、設定ファイルを何度書き換えても解決しません。ネットワーク管理者へ、ssh.github.comのTCP 443番ポートに対するSSH通信が許可されているか確認してください。

接続がすぐ切断される

443番ポートへ接続した直後に切断される場合は、プロキシやセキュリティ製品が「443番ポート上のHTTPS以外の通信」を拒否している可能性があります。

443番ポートを利用する方法は、SSHをHTTPSの中に隠す仕組みではありません。ポート番号だけを443番へ変更しているため、通信内容を判別するネットワークでは遮断されることがあります。([GitHub Docs][1])

Permission deniedと表示される

次のエラーは、通信経路ではなくSSH鍵の問題です。

Permission denied (publickey).

主に次の点を確認します。

  • 公開鍵が利用中のGitHubアカウントに登録されているか
  • 対応する秘密鍵が端末に存在するか
  • 別のGitHubアカウント用の鍵が選択されていないか
  • ~/.ssh/configIdentityFile指定が正しいか
  • SSHエージェントに鍵が登録されているか

詳しい接続過程を確認するときは、次のコマンドを利用できます。

ssh -vT -p 443 [email protected]

-vを付けると、接続先や選択された鍵などが表示されます。ログを社外や公開掲示板へ貼り付ける場合は、ユーザー名、端末内のパス、鍵のファイル名、IPアドレスなどを確認してから必要な範囲だけ共有してください。

設定後も22番ポートへ接続している

設定後のログにport 22と表示される場合は、configが読み込まれていない可能性があります。

次の点を確認します。

  • ファイル名がconfig.txtではなくconfigになっているか
  • .sshフォルダー内に保存されているか
  • Host github.comの綴りが正しいか
  • GitのリモートURLが本当にgithub.comを参照しているか
  • GUI版Gitクライアントが別のSSH実装や設定ファイルを使用していないか

現在のリモートURLは、次のコマンドで確認できます。

git remote -v

独自のホスト別名を使っている場合は、Host github.comの設定が適用されません。その場合は、リモートURLで使っているホスト名に対応したSSH設定が必要です。

443番SSHが許可されない場合はHTTPS接続を検討する

組織がSSH通信を全面的に禁止しており、HTTPS通信だけを許可している場合は、SSHの443番接続を無理に利用するのではなく、GitHubへの接続方式をHTTPSへ変更します。

既存リポジトリのリモートURLは、次のように変更できます。

git remote set-url origin https://github.com/OWNER/REPOSITORY.git

認証方法は、組織が指定する認証ツールや資格情報管理方法に従ってください。会社支給端末では、Git Credential Manager、シングルサインオン、プロキシ設定などが管理されている場合があります。

GitHub公式も、SSH接続がファイアウォールで拒否される場合の選択肢として、HTTPSによるクローンを挙げています。([GitHub Docs][1])

GitHub Enterpriseでは利用条件が異なる

今回のssh.github.com:443を使う方法は、通常のGitHub.comを対象としたものです。

次の環境では、GitHub公式ドキュメント上、HTTPS用ポートを使ったSSH接続はサポートされていません。

環境ssh.github.com:443方式
通常のGitHub.com利用可能
GitHub Enterprise Server非対応
データ所在地対応のGitHub Enterprise Cloud非対応

GitHub Enterprise Serverでは接続先が組織専用のホスト名になるため、GitHub.com向けの設定をそのまま転用できません。管理者が案内するホスト名、ポート、認証方式を使用してください。([GitHub Docs][1])

安全に切り替えるための確認事項

作業は次の順番で進めると、設定ミスとセキュリティ上の問題を減らせます。

  1. ssh.github.comのTCP 443番ポートが組織で許可されているか確認する
  2. 現在の~/.ssh/configをバックアップする
  3. ssh -T -p 443 [email protected]で一時テストする
  4. 表示されたホスト鍵をGitHub公式フィンガープリントと照合する
  5. 成功後にHost github.comのSSH設定を追加する
  6. ssh -T [email protected]git fetchで動作を確認する
  7. 443番SSHが禁止されている場合は、管理者指定のHTTPS接続へ切り替える

SSHの秘密鍵、アクセストークン、回復コードは、スクリーンショットや問い合わせ用ログに含めないでください。ホスト鍵の警告が表示された場合も、確認せずに登録済み情報を削除したり、無条件で承認したりしないことが重要です。

社内ネットワークでGitHubのSSH接続がタイムアウトした場合、まず試すべき公式経路はssh.github.comの443番ポートです。ただし、443番ポートだから必ず通るわけではありません。管理者の許可、ホスト鍵の照合、設定のバックアップを行ったうえで切り替え、許可されない場合は組織指定のHTTPS接続を利用してください。
[1]: https://docs.github.com/en/authentication/troubleshooting-ssh/using-ssh-over-the-https-port “Using SSH over the HTTPS port – GitHub Docs”
[2]: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/githubs-ssh-key-fingerprints “GitHub’s SSH key fingerprints – GitHub Docs”

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次