at_yasu's blog

ロード的なことを

ssh-keygenで鍵作成

とりあえず、忘れな書き。ssh-keygenでRSAとDSAの{公開,秘密}鍵作成方法。

[SSH] ssh-keygenで一から鍵作成

一から作る場合、-tオプションを付けてあげる。manによると下記のような引数を持つ。

ssh-keygen [-q] [-b bits] -t type [-N new_passphrase] [-C comment] [-f output_keyfile]

簡単な引数の説明

-q
/etc/rcが新しい鍵を作成する時に使用します。
-b bits
作成する鍵のビット長を指定します。RSAの場合、最小の長さは768ビットであり標準では2048ビットです。たいていの場合、2024ビットで十分だと思われます。DSAはFIPS 186-2で指定されている様に1024ビットにするべきです。
-t type
鍵の種類を指定します。選択可能な種類として、プロトコルバージョン1の「rsa1*1、プロトコルバージョン2の「rsa」もしくは「dsa」です。
-N new_passphrase
新しいパスフレーズにします。
-C comment
新しいコメントにします。
-f output_keyfile
鍵ファイルのファイル名にします。

[SSH] ssh-keygenを使った秘密鍵から公開鍵の作成

公開秘密鍵の性質により、秘密鍵から公開鍵を作ることができます。以下、事例。私の秘密鍵(id_rsa)から公開鍵を作成します。

[negro: ~/.ssh][0:35] $ ssh-keygen -y -f id_rsa
Enter passphrase:
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAIEA78uHVGH3VxU7X5j1VwqJpNh2hplm7TlesUICpJMcGlz+PJQDCmFW9+i+Ozqmhb/Y0ABdppD7dDmXWO2a/Ithux1mwageuvj/j72CZQCNtoFYBoLqRn7MlGTIbIrTRWA7/23QZCgxtGJ0EXzYLbYJXVG6iu6UwnoM/bwZCoPnVUM=
[negro: ~/.ssh][0:35] $ 

と云う訳で、-yオプションを付けてやれば言い訳です。


[SSH] ssh-keygen の各オプションの(イイカゲンナ)日本語訳

です。所々、リンクとか個人的なコメントが入ってますが、それは私が入れた物です。詳しくは、ssh-keygen(1) - OpenBSD manual pagesを見てください。

もしかすると、先に書いてしまった文は抜いてますが、書き忘れてしまっているオプションも有ると思います。その場合は、生暖かく見てください。後、誤訳も。

-i
このオプションはSSH2互換の{公開,秘密}鍵ファイルを解読し読み込み、OpenSSH互換の{公開,秘密}鍵ファイルとして標準出力に出力します。また、ssh-keygenは「SECSH Public Key File Format」も読み込みます。このオプションは、いくつかの商用SSHで作られた鍵の読み込みをします。
-e
このプションはOpenSSHの{公開,秘密}鍵ファイルを読み込み、「SECSH Public Key File Format」として鍵を標準出力に出力します。このオプションは、いくつかの商用SSHで作られた鍵ファイルの書き出しをします。
-B
{公開,秘密}鍵ファイルをbubblebabbleダイジェストで表示します。
-D reader
readerのスマートカードに保存されたRSA公開鍵をダウンロードします。
-U reader
readerのスマートカードにあるRSA公開鍵をアップロードします。

他にも下記のような使い方が有るそうです。少ししんどいので、今日はとりあえずここまで。

     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]
     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]
     ssh-keygen -B [-f input_keyfile]
     ssh-keygen -D reader
     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 -U reader [-f input_keyfile]
     ssh-keygen -r hostname [-f input_keyfile] [-g]
     ssh-keygen -G output_file [-v] [-b bits] [-M memory] [-S start_point]
     ssh-keygen -T output_file -f input_file [-v] [-a num_trials]
                [-W generator]

*1:多分だけど、rsa1とrsaの違いは、ssh側の理由で違うだけでアルゴリズムには何ら関係無さげ。どうもそんな感じ。