HTTPS/SSL証明書を使用してSSHセッションの信頼性を確立する

HTTPS/SSL証明書を使用してSSHセッションの信頼性を確立する

ユーザーが HTTPS でアクセスできるように Web サイトを登録しました (HSTS とリダイレクトは構成の一部であるため、強制的に HTTPS が使用されます)。

GitLabでセットアップしました。HTTPS経由でリポジトリに問題なくアクセスできます。ワークステーションの公開証明書をインストールします。

ssh-keygen -t rsa -b 4096 -C "ワークステーション名"

ユーザー名とパスワードの組み合わせなしでファイルをプッシュおよびプルできるようになります。

今チェックアウトしようとしています

git クローン[メールアドレス]:グループ/リポジトリ.git

そして古いプロンプトが表示される

ホスト 'git.myserver.com (#.#.#.#)' の信頼性を確立できません。RSA キー フィンガープリントは SHA256:HAHANO17pLUsNE2KoVKweYDEwhJHu1l4ugaoT+fHdx0 です。

本当に接続を続行しますか? (はい/いいえ)

...しかし、待ってください。証明書は自己署名されていないため、HTTPS ではユーザーの確認は必要ありません。

「X.509」と書いてありますが、その証明機関は、HTTPS 証明書を発行した CA と同じもののようです。では、同じ署名済み証明書を使用するようにサーバーの SSH を構成できますか (そうすれば、サーバーのデータを手動で確認してワークステーションの known_hosts ファイルに保存する必要がありません)? また、ssh/生成されたファイルをどのように構成すればよいですか?

答え1

まず、SSH と HTTPS は、2 つの異なるプロトコル (ssh と HTTP over TLS/SSL) を使用して、2 つの異なるポート (それぞれ 22 と 443) で実行される 2 つの異なるサービスです。これらのプロトコルには互換性がありません。

さらに、SSH は PKI (公開鍵インフラストラクチャ) を使用していませんが、サーバー認証はハッシュ署名に基づいており、アウトオブバンド チャネル経由で SSH サーバーの所有者に確認する必要があります (サーバーを担当する管理者に確認するなど)。

X509 証明書ベースの PKI の代わりに SSH に使用できる信頼のウェブに PGP を使用するソフトウェアがあります。参照:https://serverfault.com/a/60287

関連情報