.\" $OpenBSD: ssh-keyscan.1,v 1.24 2008/04/30 10:14:03 djm Exp $ .\" .\" Copyright 1995, 1996 by David Mazieres . .\" .\" Modification and redistribution in source and binary forms is .\" permitted provided that due credit is given to the author and the .\" OpenBSD project by leaving this copyright notice intact. .\" .\" Japanese translation: $Id: ssh-keyscan.1,v 1.1.1.1 2007/09/05 12:13:54 yusuke Exp $ .\" by Yusuke Shinyama .\" .Dd $Mdocdate: May 31 2007 $ .Dt SSH-KEYSCAN 1 .Os .Sh 名前 .Nm ssh-keyscan .Nd ssh 公開鍵を収集する .Sh 書式 .Nm ssh-keyscan .Bk -words .Op Fl 46Hv .Op Fl f Ar ファイル名 .Op Fl p Ar ポート番号 .Op Fl T Ar タイムアウト秒数 .Op Fl t Ar 鍵の種類 .Op Ar ホスト名 | アドレスリスト ホスト名リスト .Op Ar ... .Ek .Sh 説明 .Nm は複数のホストから ssh 用のホスト公開鍵を収集するための ユーティリティです。これは .Pa ssh_known_hosts ファイルを構築し、検証するのに役立つよう作られています。 .Nm はシェルスクリプトあるいは perl スクリプトから使うのに適した、 最小限のインターフェイスを備えています。 .Pp .Nm はノンブロッキングソケット I/O を使い、なるべく多くのホストに 並列にアクセスします。そのためこれは非常に効率的です。 1000 台ほどのホストから なるドメインの鍵も数十秒で集めてしまいます、たとえいくつかのホストで ssh が走っていなかったり、ホストがダウンしていたりしても、です。 スキャンのために当該マシンにログインする必要はありません。また、 スキャンするときに暗号を用いる必要もありません。 .Pp オプションは以下のとおりです: .Bl -tag -width Ds .It Fl 4 .Nm が IPv4 アドレスのみを使うよう強制します。 .It Fl 6 .Nm が IPv6 アドレスのみを使うよう強制します。 .It Fl f Ar ファイル名 このファイルから、ホスト名あるいは .Pa アドレスリスト ホスト名リスト の組を読み込みます。書式は 1 行 1 項目です。引数として .Pa - が指定された場合、 .Nm は標準入力からホスト名あるいは .Pa アドレスリスト ホスト名リスト の組を読み込みます。 .It Fl H 出力のホスト名および IP アドレスをすべてハッシュします。 .Nm ssh および .Nm sshd は、これらのハッシュ表現を普通に扱うことができますが、 これによって、たとえファイルの内容が見えても 識別可能な情報が明らかになることはありません。 .It Fl p Ar ポート番号 接続するリモートホスト上のポートを指定します。 .It Fl T Ar タイムアウト秒数 接続要求がタイムアウトするまでの秒数を指定します。 あるホストに接続を試みてから、あるいは最後にそのホストから何か 受信してから .Pa timeout 秒が経過するとその接続は閉じられ、問題のホストは使用不能として 認識されます。デフォルトでは 5 秒です。 .It Fl t Ar 鍵の種類 ホストから取得する鍵の種類を指定します。 とりうる値は、プロトコル バージョン 1 の .Dq rsa1 と、プロトコル バージョン 2 の .Dq rsa あるいは .Dq dsa です。 複数の値を指定するときは、カンマで区切ってください。 デフォルトではこれは .Dq rsa になっています。 .It Fl v 冗長表示モード。 .Nm が進行中のデバッグメッセージを表示するようにします。 .El .Sh セキュリティ .Nm を使って、鍵を検証せずに ssh_known_hosts ファイルを構築した場合、 .Em man in the middle (なりすまし) 攻撃に対して無防備になります。 いっぽう、お使いのセキュリティモデルがそのような危険を はらんでいる場合、一度こちらの ssh_known_hosts を作ってしまえば、 .Nm はそれ以後の、改竄された鍵ファイルや man in the middle (なりすまし) 攻撃を検知するのに使えます。 .Sh 関連ファイル .Pa 入力形式: .Bd -literal 1.2.3.4,1.2.4.4 name.my.domain,name,n.my.domain,n,1.2.3.4,1.2.4.4 .Ed .Pp .Pa rsa1 鍵の出力形式: .Bd -literal ホストあるいはホスト名のリスト ビット数 べき指数 係数 .Ed .Pp .Pa rsa および dsa 鍵の出力形式: .Bd -literal ホストあるいはホスト名のリスト 鍵の種類 base64エンコードされた鍵 .Ed .Pp .Pa keytype の値は .Dq ssh-rsa あるいは .Dq ssh-dss のどちらかです。 .Pp .Pa /etc/ssh/ssh_known_hosts .Sh 使用例 .Pp .Pa hostname で指定されるマシンの .Pa rsa1 ホスト鍵を表示する: .Bd -literal $ ssh-keyscan hostname .Ed .Pp ファイル .Pa ssh_hosts にあるホストのうち、 新しいホスト、あるいはソートされた .Pa ssh_known_hosts ファイルにあるものと鍵が違っているホストを見つける: .Bd -literal $ ssh-keyscan -t rsa,dsa -f ssh_hosts | \e\ sort -u - ssh_known_hosts | diff ssh_known_hosts - .Ed .Sh 関連項目 .Xr ssh 1 , .Xr sshd 8 .Sh 作者 .An -nosplit .An David Mazieres Aq dm@lcs.mit.edu が最初のバージョンを書き、 .An Wayne Davison Aq wayned@users.sourceforge.net がプロトコル バージョン 2 のサポートを追加しました。 .Sh バグ サーバ側のバージョンが 2.9 より古いと、 このプログラムはスキャンしたすべてのマシンのコンソール上に "Connection closed by remote host" のメッセージを残します。 これは、このプログラムが ssh 用のポートに接続したあと、 公開鍵を読み込んですぐに接続を切ってしまうためです。