GNU/Linux >> Linux の 問題 >  >> Linux

Ssh証明書が指定されたSshCa秘密鍵によって署名されたことを確認する方法は?

このマテリアルを使用して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

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

承認された回答:

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

次に、ssh-keygen -L -f <certfile>を使用して、署名CAの公開鍵を含む証明書の詳細を抽出できます。 。 (小文字の)-lを使用する場合 代わりに、ssh-keygen すべての証明書要素ではなく、証明書に埋め込まれている基になる(公開)ホストキーに関する情報のみを出力します。


Linux
  1. SSHキーペアを生成する方法(例付き)

  2. LinuxでSSHキーベースの認証を構成する方法

  3. SSHキーを設定する方法

  1. Ssh –プライベートSshキーが与えられた場合、公開キーを回復するにはどうすればよいですか?

  2. Ssh秘密鍵から公開鍵を取得する方法は?

  3. Linux で SSH の「公開/秘密鍵」ログイン用の SSH キーをセットアップする方法

  1. パスワードなしでSSHログインを設定する方法

  2. SFTP用にFileZillaに秘密鍵をインポートする方法

  3. Ubuntu18.04でSSHキーを設定する方法