ssh-keyscan コマンド

目的

SSH 公開鍵を集めます。

構文

ssh-keyscan [ -v46 ] [ -p port ] [ -T timeout ] [ -t type ] [ -f file ] [ host | addrlist namelist ] [ ... ]

説明

ssh-keyscan は、多数のホストの公開 SSH ホスト鍵を集めるユーティリティーです。このユーティリティーは、ssh_known_hosts ファイルのビルドと検査に役立つように設計されています。

ssh-keyscan は、シェル・スクリプトおよび perl スクリプトでの使用に適した最小インターフェースを提供します。

ssh-keyscan は、非ブロッキング・ソケット I/O を使用して、できるだけ多くのホストに平行して接触するので、非常に効率的です。 1 000 のホストからなるドメインの鍵を集める場合、ダウンしているホストや SSH を使用していないホストがあっても、数十秒で完了します。ユーザーはスキャン対象のマシンへのログイン・アクセスの必要がなく、またスキャン・プロセスに暗号化は関与しません。

フラグ

-p port リモート・ホスト上の接続先のポート。
-T timeout 接続の試みのタイムアウトを指定します。ホストへの接続が開始されてから、またはそのホストからの読み取りが最後に行われてから、タイムアウトの秒数が経過すると、接続はクローズされ、接続中のホストは使用不可と見なされます。デフォルトは 5 秒です。
-t type スキャンされるホストから取り出される鍵のタイプを指定します。使用できる値は、次のとおりです。
  • rsa1 (プロトコル・バージョン 1 の場合)
  • rsa または dsa (プロトコル・バージョン 2 の場合)
複数の値は、コンマで区切って指定できます。デフォルトは rsa1 です。
-f filename このファイルから hosts または addrlist namelist の対を、1 行に 1 つずつ読み取ります。 filename ではなく - (ハイフン) が指定された場合は、ssh-keyscan は標準入力から hosts または addrlist namelist の対を読み取ります。
-v 詳細モード。 ssh-keyscan はその進行状況に関するデバッグ・メッセージを出力します。
-4 ssh-keyscan に IPv4 アドレスのみを使用することを強制します。
-6 ssh-keyscan に IPv6 アドレスのみを使用することを強制します。

マシン hostname の rsa1 ホスト鍵を出力するには、次のように入力します。

 ssh-keyscan hostname 

新しい鍵またはソート・ファイル ssh_known_hosts に入っている鍵と異なる鍵を持つすべてのホストをファイル ssh_hosts から検出するには、次のように入力します。

ssh-keyscan -t rsa,dsa -f ssh_hosts | ¥  
   sort -u - ssh_known_hosts | diff ssh_known_hosts -

関連情報

ssh-keygen コマンド