OpenSSH-7.3p1 日本語マニュアルページ (2016/10/15)
ssh 公開鍵を収集する
ssh-keyscan
[-46cHv
]
[-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 アドレスのみを使うよう強制します。-c
-f
ファイル名 -
が指定された場合、ssh-keyscan
は標準入力からホスト名あるいは"アドレスリスト ホスト名リスト"の組を読み込みます。-H
ssh
およびsshd
は、これらのハッシュ表現を普通に扱うことができますが、これによって、たとえファイルの内容が見えても識別可能な情報が明らかになることはありません。-p
ポート番号 -T
タイムアウト秒数 -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, ECSDA および ED25519 鍵の出力形式:
ホストあるいはホスト名のリスト 鍵の種類 base64エンコードされた鍵
keytype の値は"ecdsa-sha2-nistp256 ,""ecdsa-sha2-nistp384 ,""ecdsa-sha2-nistp521 ,""ssh-ed25519 ,""ssh-dss"あるいは"ssh-rsa"のいずれかです。
/etc/ssh/ssh_known_hosts
hostname で指定されるマシンの rsa ホスト鍵を表示する:
$ ssh-keyscan hostname
ファイルssh_hosts
にあるホストのうち、新しいホスト、あるいはソートされたssh_known_hosts
ファイルにあるものと鍵が違っているホストを見つける:
\ sort -u - ssh_known_hosts | diff ssh_known_hosts -