Go to main content
マニュアルページ セク ション 1: ユー ザーコマンド

印刷ビューの終了

更新: 2016年12月6日
 
 

ssh-keygen(1)

名前

ssh-keygen - 認証鍵の生成

形式

ssh-keygen [-q] [-b bits ] -t type [-N new_passphrase] 
     [-C comment] [-f output_keyfile]
ssh-keygen -p [-P old_passphrase] [-N new_passphrase] 
     [-f keyfile]
ssh-keygen -i [-f input_keyfile | PKCS#11-URI]
ssh-keygen -e [-f input_keyfile]
ssh-keygen -y [-f input_keyfile]
ssh-keygen -c [-P passphrase] [-C comment] [-f keyfile]
ssh-keygen -l [-f input_keyfile | PKCS#11-URI]
ssh-keygen -B [-f input_keyfile]
ssh-keygen -F hostname [-f known_hosts_file]
ssh-keygen -H [-f known_hosts_file]
ssh-keygen -R hostname [-f known_hosts_file]

説明

ssh-keygen ユーティリティーは、ssh(1) の認証鍵を生成、管理、および変換します。ssh-keygen は、SSH プロトコルバージョン 1 で使用される RSA 鍵、および SSH プロトコルバージョン 2 で使用される RSA または DSA 鍵を作成できます。生成される鍵のタイプは、–t オプションで指定されます。ssh-keygen はまた、フィンガープリントを生成したり、PKCS#11 URI として指定された X.509v3 証明書の公開鍵を変換したりすることもできます。

通常、RSA または DSA 認証に SSH を使用しようとしている各ユーザーは、これを 1 回実行して $HOME/.ssh/identity$HOME/.ssh/id_dsa、または $HOME/.ssh/id_rsa 内に認証鍵を作成します。また、システム管理者は、これを使用してホスト鍵も生成できます。

通常、このプログラムは鍵を生成して、秘密鍵を格納するためのファイルの入力を求めます。公開鍵は、同じ名前のあとに「.pub」拡張子が付加されたファイル内に格納されます。このプログラムはまた、パスフレーズの入力も求めます。パスフレーズは、パスフレーズがないことを示すために空にすることも (ホスト鍵のパスフレーズも空である必要があります)、任意の長さの文字列にすることもできます。適切なパスフレーズは、長さが 10 から 30 文字、単純な文章やその他の方法で推測しやすい文字列ではなく、さらに大文字と小文字の英字、数字、および英数字以外の文字が混在して含まれています。(英語の散文には単語あたり 1 から 2 ビットのエントロピしか含まれておらず、非常に劣ったパスフレーズが提供されます。)パスフレーズが設定されている場合は、少なくとも 4 文字の長さが必要です。

パスフレーズは、–p オプションを使用してあとで変更できます。

失われたパスフレーズを回復する方法はありません。パスフレーズを失ったり忘れたりした場合は、新しい鍵を生成し、対応する公開鍵をほかのマシンにコピーする必要があります。

RSA の場合は、鍵ファイル内に、鍵の識別に役立つユーザーの便宜のためだけのコメントフィールドも存在します。comment は、鍵の目的や、その他の役立つあらゆる内容を伝えることができます。このコメントは、鍵が作成されると「user@host」に初期化されますが、–c オプションを使用して変更できます。

鍵が生成されたあと、その鍵をどこに配置して有効にするかについて次に詳細に示します。

オプション

サポートしているオプションは、次のとおりです。

–b bits

作成する鍵内のビット数を指定します。最小数は 512 ビットです。一般には、2048 ビットで十分と考えられます。これを超えるキーサイズではもうセキュリティーは向上せず、処理が遅くなります。デフォルトは 2048 ビットです。

–B

指定された非公開または公開鍵ファイルの bubblebabble ダイジェストを示します。

–c

非公開および公開鍵ファイル内のコメントの変更を要求します。プログラムは、秘密鍵を含むファイル、パスフレーズ (鍵にパスフレーズがある場合)、および新しいコメントの入力を求めます。

このオプションは、rsa1 (SSHv1) 鍵にのみ適用されます。

–C comment

新しいコメントを指定します。

–e

このオプションは非公開または公開の OpenSSH 鍵ファイルを読み取り、その鍵を「SECSH」公開鍵ファイル形式で標準出力に表示します。このオプションを使用すると、ほかのいくつかの SSH 実装で使用するために鍵をエクスポートできます。

–f

鍵ファイルのファイル名を指定します。

–F

known_hosts ファイル内の指定された hostname を検索し、見つかったものをすべて一覧表示します。このオプションは、ハッシュされたホスト名またはアドレスの検索に有効なほか、見つかった鍵をハッシュされた形式で表示するために –H オプションと組み合わせて使用することもできます。

–H

known_hosts ファイルをハッシュします。これは、すべてのホスト名とアドレスを、指定されたファイル内のハッシュされた表現に置き換えます。元の内容は、.old の接尾辞を持つファイルに移動されます。これらのハッシュは sshsshd で正常に使用できますが、ファイルの内容が公表されても、識別情報は明らかにされません。このオプションは既存のハッシュされたホスト名を変更しないため、ハッシュされた名前とハッシュされていない名前が混在したファイルでも安全に使用できます。

–i

このオプションは、SSH2 と互換性のある形式の暗号化されていない非公開 (または公開) 鍵ファイルを読み取り、OpenSSH と互換性のある非公開 (または公開) 鍵を標準出力に表示します。ssh-keygen はまた、「SECSH」公開鍵ファイル形式も読み取ります。このオプションを使用すると、ほかのいくつかの SSH 実装から鍵をインポートできます。

–l

指定された非公開または公開鍵ファイルのフィンガープリントを示します。

–N new_passphrase

新しいパスフレーズを指定します。

–p

新しい秘密鍵の作成ではなく、秘密鍵ファイルのパスフレーズの変更を要求します。プログラムは、秘密鍵を含むファイルと古いパスフレーズの入力を求めたあと、新しいパスフレーズを 2 回入力するよう求めます。

–P passphrase

(古い) パスフレーズを指定します。

–q

ssh-keygen を休止します。

–t type

鍵に使用されるアルゴリズムを指定します。ここで、typersadsarsa1 のいずれかです。タイプ rsa1 は、SSHv1 プロトコルにのみ使用されます。

–R hostname

known_hosts ファイルから hostname に属するすべての鍵を削除します。このオプションは、ハッシュされたホストを削除する場合に役立ちます。–H を参照してください。

–x

廃止。–e オプションによって置き換えられました。

–X

廃止。–i オプションによって置き換えられました。

–y

このオプションは非公開の OpenSSH 形式ファイルを読み取り、OpenSSH 公開鍵を標準出力に表示します。

–8

ssh-keygen が鍵を PKCS#8 形式で生成することを指定します。生成されるサポート対象の鍵のタイプは rsa または dsa です。

終了ステータス

次の終了ステータスが返されます。

0

正常終了。

1

エラーが発生した。

ファイル

$HOME/.ssh/identity

このファイルには、SSHv1 プロトコルの RSA 秘密鍵が含まれています。このファイルは、このユーザー以外のだれからも読み取り可能であってはいけません。鍵を生成するときにパスフレーズを指定できます。そのパスフレーズは、3DES を使用してこのファイルのプライベートな部分を暗号化するために使用されます。このファイルは ssh-keygen から自動的にはアクセスされませんが、秘密鍵のためのデフォルトファイルとして提供されます。このファイルは、ログインが試行されたときに sshd(1M) によって読み取られます。

$HOME/.ssh/identity.pub

このファイルには、SSHv1 プロトコルの RSA 公開鍵が含まれています。このファイルの内容を、RSA 認証を使用してログインするすべてのマシン上の $HOME/.ssh/authorized_keys に追加するようにしてください。このファイルのシークレットの内容を保管する必要はありません。

$HOME/.ssh/id_dsa
$HOME/.ssh/id_rsa

これらのファイルには、それぞれ、SSHv2 プロトコルの DSA 秘密鍵または RSA 秘密鍵が含まれています。これらのファイルは、このユーザー以外のだれからも読み取り可能であってはいけません。鍵を生成するときにパスフレーズを指定できます。そのパスフレーズは、128 ビット AES を使用してこのファイルのプライベートな部分を暗号化するために使用されます。これらのいずれのファイルも ssh-keygen から自動的にはアクセスされませんが、秘密鍵のためのデフォルトファイルとして提供されます。このファイルは、ログインが試行されたときに sshd(1M) によって読み取られます。

$HOME/.ssh/id_dsa.pub
$HOME/.ssh/id_rsa.pub

これらのファイルには、それぞれ、SSHv2 プロトコルの DSA 公開鍵または RSA 公開鍵が含まれています。これらのファイルの内容を、それぞれ、DSA または RSA 認証を使用してログインするすべてのマシン上の $HOME/.ssh/authorized_keys に追加するようにしてください。これらのファイルのシークレットの内容を保管する必要はありません。

属性

属性についての詳細は、マニュアルページの attributes(5) を参照してください。

属性タイプ
属性値
使用条件
network/ssh/ssh-key
インタフェースの安定性
確実

関連項目

ssh(1), ssh-add(1), ssh-agent(1), sshd(1M), attributes(5)