Skip to main content

HTTPS ポートを介して SSH を使用する

時々、ファイアウォールは SSH 接続を完全に許可することを拒否します。 認証情報キャッシュを使用した HTTPS クローニング を使用することが選べない場合は、HTTPS ポート経由の SSH 接続を使用してクローンの作成を試みることができます。 ほとんどのファイアウォールルールでこれを許可する必要がありますが、プロキシサーバーが干渉する可能性があります。

GitHub Enterprise Server ユーザー: HTTPS ポートを介した SSH 経由での GitHub Enterprise Server へのアクセスは現在サポートされていません。

HTTPS ポート経由の SSH が可能かどうかをテストするには、次の SSH コマンドを実行します:

$ ssh -T -p 443 git@ssh.github.com
# Hi USERNAME! You've successfully authenticated, but GitHub does not
# provide shell access.

うまく機能すれば、素晴らしいことです。 そうでない場合は、トラブルシューティング ガイドに従ってください。

Note

ポート 443 のホスト名は、github.com ではなく ssh.github.com です。

この記事には、github.com ドメインを使うコマンドまたは例が含まれています。 octocorp.ghe.com など、別のドメインで GitHub にアクセスすることもできます。

ここで、リポジトリをクローンするには、次のコマンドを実行できます。

git clone ssh://git@ssh.github.com:443/YOUR-USERNAME/YOUR-REPOSITORY.git

HTTPS を介した SSH 接続を有効化する

ポート 443 経由で git@ssh.github.com に SSH 接続できる場合は、SSH の設定をオーバーライドして、GitHub.com への接続をそのサーバーとポートを通して実行するように強制できます。

SSH 構成ファイルでこれを設定するには、~/.ssh/config でファイルを編集し、次のセクションを追加します。

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

GitHub.com にもう一度接続することで、これが機能することをテストできます。

$ ssh -T git@github.com
# Hi USERNAME! You've successfully authenticated, but GitHub does not
# provide shell access.

既知のホストを更新する

ポート 443 に切り替えた後で GitHub を初めて使うときに、known_hosts でホストが見つからなかったこと、または別の名前で見つかったことを示す警告メッセージが、表示されることがあります。

# The authenticity of host '[ssh.github.com]:443 ([140.82.112.36]:443)' can't be established.
# ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
# This host key is known by the following other names/addresses:
#     ~/.ssh/known_hosts:32: github.com
# Are you sure you want to continue connecting (yes/no/[fingerprint])?

SSH のフィンガープリントが公開されている GitHub のフィンガープリントのいずれかと一致するなら、この質問に "はい" と答えても安全です。 フィンガープリントの一覧については、「GitHub の SSH キーフィンガープリント」を参照してください。