SSH-KEYSCAN(1) | FreeBSD General Commands Manual | SSH-KEYSCAN(1) |
名称
ssh-keyscan — ssh 公開鍵を収集する書式
ssh-keyscan | [ -46Hv][ -f file][ -p port][ -T timeout][ -t type][ host | addrlist namelist] ... |
解説
ssh-keyscan は、多くのホストの ssh ホスト公開鍵を収集するためのユーティリティです。それは、 ssh_known_hosts ファイルを構築し、検証することを手助けするように設計されました。 ssh-keyscan は、シェルと perl スクリプトでの使用に適している最小のインタフェースを提供しています。ssh-keyscan は、並列にできるだけ多くのホストと通信するためにノンブロッキング (non-blocking) ソケット I/O を使用するので、それは、非常に効率的です。いくつかのホストがダウンしているか、または ssh を実行していないときでさえ、 1,000 のホストのドメインからの鍵を、数十秒で収集することができます。スキャンのために、スキャンされているマシンへのログインアクセスを必要としませんし、スキャンしているプロセスは、あらゆる暗号化を必要としません。
オプションは、次の通りです:
- -4
- ssh-keyscan は、強制的に IPv4 アドレスのみを使用します。
- -6
- ssh-keyscan は、強制的に IPv6 アドレスのみを使用します。
- -f file
- このファイルからホストまたは addrlist namelist のペアを 1 行ごとに 1 つ読み込みます。ファイル名の代わりに - が供給されるなら、 ssh-keyscan は、標準入力からホストまたは addrlist namelist のペアを読み込みます。
- -H
- 出力のホスト名とアドレスをすべてハッシュします。ハッシュされた名前は、通常 ssh と sshd によって使用されますが、ファイルの内容が開示されるならば、それらは、識別する情報を明らかにしません。
- -p port
- リモートホストで接続するポート。
- -T timeout
- 接続の試みのためのタイムアウトを設定します。ホストへの接続が開始されてから、または最後にホストから何かが読み込まれてから、 timeout 秒が経過しているなら、接続は、クローズされ、問題のホストは、利用不可能とみなされます。デフォルトは、5 秒です。
- -t type
- スキャンされたホストから取り出される鍵のタイプを指定します。指定できる値は、プロトコルバージョン 1 のための“rsa1”とプロトコルバージョン 2 のための“dsa”, “ecdsa”または“rsa”です。複数の値は、コンマでそれらを区切ることによって指定されます。デフォルトは、“rsa”と“ecdsa”鍵を取って来ることです。
- -v
- 冗長なモード。 ssh-keyscan は、進行に関するデバッグのメッセージを印刷 (表示) します。
セキュリティ
ssh_known_hosts ファイルが鍵を検証せずに ssh-keyscan を使用して構築されるなら、ユーザは、 man in the middle (介入者) 攻撃を受けやすくなります。他方では、セキュリティモデルがそのような危険を放置するなら、 ssh-keyscan は、ssh_known_hosts ファイルが作成された後に、開始された不正に変更された鍵ファイルまたは仲介者 (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 鍵のための出力形式:
host-or-namelist bits exponent modulus
rsa、dsa と ecdsa 鍵のための出力形式:
host-or-namelist keytype base64-encoded-key
ここで、 keytype は、“ecdsa-sha2-nistp256”, “ecdsa-sha2-nistp384”, “ecdsa-sha2-nistp521”, “ssh-dss”または“ssh-rsa”のいずれかです。
/etc/ssh/ssh_known_hosts
使用例
ホスト hostname のための rsa ホスト鍵を印刷 (表示) します:
$ ssh-keyscan hostname
ソートされたファイル ssh_known_hosts に新しいホストまたはホストと異なった鍵がある、ファイル ssh_hosts からすべてのホストを見つけるためには、次の通りです:
$ ssh-keyscan -t rsa,dsa,ecdsa -f ssh_hosts | \ sort -u - ssh_known_hosts | diff ssh_known_hosts -
バグ
サーバがバージョン 2.9 より古いなら、スキャンするすべてのマシンのコンソールに "Connection closed by remote host" (リモートホストによってクローズされた接続) メッセージを生成します。これは、ssh ポートへの接続をオープンし、公開鍵を読み込み、鍵を取得するすぐに接続を落すためです。July 16, 2013 | FreeBSD |