OpenSSH-5.1p1 日本語マニュアルページ (2008/10/03)
ssh 公開鍵を収集する
ssh-keyscan
[-46Hv
]
[-f
ファイル名 ]
[-p
ポート番号 ]
[-T
タイムアウト秒数 ]
[-t
鍵の種類 ]
[ホスト名 |アドレスリストホスト名リスト]
[... ]
ssh-keyscan
は複数のホストから ssh 用のホスト公開鍵を収集するためのユーティリティです。これはssh_known_hosts
ファイルを構築し、検証するのに役立つよう作られています。ssh-keyscan
はシェルスクリプトあるいは perl スクリプトから使うのに適した、最小限のインターフェイスを備えています。
ssh-keyscan
はノンブロッキングソケット I/O を使い、なるべく多くのホストに並列にアクセスします。そのためこれは非常に効率的です。1000 台ほどのホストからなるドメインの鍵も数十秒で集めてしまいます、たとえいくつかのホストでssh が走っていなかったり、ホストがダウンしていたりしても、です。スキャンのために当該マシンにログインする必要はありません。また、スキャンするときに暗号を用いる必要もありません。
オプションは以下のとおりです:
-4
ssh-keyscan
が IPv4 アドレスのみを使うよう強制します。-6
ssh-keyscan
が IPv6 アドレスのみを使うよう強制します。-f
ファイル名 アドレスリスト ホスト名リスト
の組を読み込みます。書式は 1 行 1 項目です。引数として-
が指定された場合、ssh-keyscan
は標準入力からホスト名あるいはアドレスリスト ホスト名リスト
の組を読み込みます。-H
ssh
およびsshd
は、これらのハッシュ表現を普通に扱うことができますが、これによって、たとえファイルの内容が見えても識別可能な情報が明らかになることはありません。-p
ポート番号 -T
タイムアウト秒数 timeout
秒が経過するとその接続は閉じられ、問題のホストは使用不能として認識されます。デフォルトでは 5 秒です。-t
鍵の種類 -v
ssh-keyscan
が進行中のデバッグメッセージを表示するようにします。ssh-keyscan
を使って、鍵を検証せずに ssh_known_hosts ファイルを構築した場合、man in the middle(なりすまし) 攻撃に対して無防備になります。いっぽう、お使いのセキュリティモデルがそのような危険をはらんでいる場合、一度こちらの ssh_known_hosts を作ってしまえば、ssh-keyscan
はそれ以後の、改竄された鍵ファイルや man in the middle (なりすまし)攻撃を検知するのに使えます。入力形式:
1.2.3.4,1.2.4.4 name.my.domain,name,n.my.domain,n,1.2.3.4,1.2.4.4
rsa1 鍵の出力形式:
ホストあるいはホスト名のリスト ビット数 べき指数 係数
rsa および dsa 鍵の出力形式:
ホストあるいはホスト名のリスト 鍵の種類 base64エンコードされた鍵
keytype
の値は"ssh-rsa"あるいは"ssh-dss"のどちらかです。
/etc/ssh/ssh_known_hosts
hostname
で指定されるマシンのrsa1
ホスト鍵を表示する:
$ ssh-keyscan hostname
ファイルssh_hosts
にあるホストのうち、新しいホスト、あるいはソートされたssh_known_hosts
ファイルにあるものと鍵が違っているホストを見つける:
\ sort -u - ssh_known_hosts | diff ssh_known_hosts -