SSH-KEYSCAN(1)

名称
ssh-keyscan - ssh 公開鍵を収集する

書式
ssh-keyscan [-t タイムアウト秒数] [-- | ホスト名 | アドレスリスト ホスト名リスト] [-f ファイル ...]

解説
ssh-keyscan は複数のホストから ssh 用のホスト公開鍵を収集するための ユーティリティです。これは ssh_known_hosts ファイルを構築し、検証するのに役立つよう作られています。 ssh-keyscan はシェルスクリプトあるいは perl スクリプトから使うのに適した、 最小限のインターフェイスを備えています。

ssh-keyscan はノンブロッキング ソケット I/O を使い、なるべく多くのホストに 並列にアクセスします。そのためこれは非常に効率的です。 1000台ほどのホストから なるドメインの鍵も数十秒で集めてしまいます、たとえいくつかのホストで ssh が走っていなかったり、ホストがダウンしていたりしても、です。 スキャンするホストにログインできる必要はありません。また、このスキャンには いかなる暗号化も必要ありません。

セキュリティ
ssh-keyscan をつかって、キーを検証せずに ssh_known_hosts ファイルを (なりすまし) 攻撃に対して無防備になります。 いっぽう、お使いのセキュリティモデルがそのような危険を はらんでいる場合、一度こちらの ssh_known_hosts を作ってしまえば、 ssh-keyscan はそれ以後の、改竄された鍵ファイルや man in the middle 攻撃を 検知するのに使えます。

オプション

-t  接続要求がタイムアウトするまでの秒数を設定します。 あるホストに接続を試みてから、あるいは最後にそのホストから何か 受信してから timeout 秒が経過するとその接続は閉じられ、問題のホストは使用不能として 認識されます。デフォルトでは 5秒です。

-f  このファイルから、1行ごとに書かれたホスト名あるいは アドレスリスト ホスト名リスト の組を読み込みます。引数として - が指定された場合、 ssh-keyscan は標準入力からホスト名あるいは アドレスリスト ホスト名リスト の組を読み込みます。

使用例

hostname で指定されるマシンのホスト鍵を表示する:

    ssh-keyscan hostname

ファイル ssh_hosts にあるホストのうち、 新しいホスト、あるいは ソートされた ssh_known_hosts ファイルにあるものと鍵が違っているホストを見つける。

    $ ssh-keyscan -f ssh_hosts | sort -u - ssh_known_hosts | \
    	diff ssh_known_hosts -

関連ファイル

入力形式: 1.2.3.4,1.2.4.4 name.my.domain,name,n.my.domain,n,1.2.3.4,1.2.4.4

出力形式: ホストあるいはホスト名のリスト ビット数 べき指数 係数

/etc/ssh_known_hosts

バグ
このプログラムは、スキャンしたすべてのマシンのコンソール上に "Connection closed by remote host" のメッセージを残します。 これは、このプログラムが ssh 用のポートに接続したあと、 公開鍵を読みこんですぐに接続を切ってしまうためです。

関連項目
ssh(1), sshd(8)

作者
David Mazieres <dm@lcs.mit.edu>

日本語訳
新山 祐介 (euske@cl.cs.titech.ac.jp) 2001/8/7

当マニュアルページは氏のご好意により FreeBSD 日本語マニュアルに収録させていただいています。 翻訳についてのご意見、ご指摘がありましたら新山氏 <euske@cl.cs.titech.ac.jp>、および FreeBSD jpman プロジェクト <man-jp@jp.FreeBSD.org> までお送りください。