SSH証明書が指定されたSSH CA秘密鍵で署名されていることを確認する方法は?

SSH証明書が指定されたSSH CA秘密鍵で署名されていることを確認する方法は?

以下を使用してSSH設定を強化しようとしています。この資料。うまくいきますが、答えを見つけるのに苦労している質問があります。

SSH CAのSSHホスト/ユーザー証明書署名を確認する方法があるかどうかを知っている人はいますか?そのホストの証明書を保持しているホストにSSHを介して接続しようとする可能性があります。ただし、自動化タスクを作成しており、証明書ファイルが正しく機能していることを確認するプログラムが必要です。 CA署名で生成されます。ssh-keygenコマンドであれ何でも教えてください。

修正する:

@PKappが提案したように:

2つの出力、つまりサーバー側の証明書署名CAの指紋とCA自体の指紋を比較できます。

sudo ssh-keygen -L -f /etc/ssh/ssh_host_ed25519_key-cert.pub | fgrep "Signing CA" | sed 's/^[ \t]*//' | cut -d ' ' -f 4
SHA256:LkdPQLdx4tuZp7pG0g6nAJqilFd6ZzjGdgVEV9elrdA

sudo ssh-keygen -l -f /etc/ssh/id_ed25519-HostCA.pub | cut -d ' ' -f 2
SHA256:LkdPQLdx4tuZp7pG0g6nAJqilFd6ZzjGdgVEV9elrdA

フィルタリングされた出力が同じ場合、証明書は一致します。

ベストアンサー1

SSH ホスト証明書をリモートで取得するには、次のものを使用できますssh-keyscan -c <hostname>(この-cオプションがない場合は、ホスト鍵のみ取得できます).特定の証明書タイプを制限するには、を含めるか、必要に応じて-t type使用しないことがありますssh-rsa[email protected]

その後、.zipファイルを使用して署名CAの公開鍵を含む証明書の詳細を抽出できますssh-keygen -L -f <certfile>。 (小文字)を使用すると、-lすべてのssh-keygen証明書要素ではなく、証明書に含まれる基本(公開)ホストキーに関する情報のみが出力されます。

おすすめ記事