「ssh-keygen」の版間の差分

提供: セキュリティ
移動: 案内検索
行79: 行79:
 
[[鍵ペア]] の作成は、下記の通りです。
 
[[鍵ペア]] の作成は、下記の通りです。
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
ssh-keygen -b 2048 -t rsa -f ~/.ssh/id_rsa.`date '+%Y-%m-%d'` -N '' -C "$USER-`date '+%Y-%m-%d'`"
+
ssh-keygen -b 4096 -t rsa -f ~/.ssh/id_rsa.`date '+%Y-%m-%d'` -N '' -C "$USER-`date '+%Y-%m-%d'`"
 
</syntaxhighlight>
 
</syntaxhighlight>
  
行87: 行87:
 
その代わり、セキュリティは低下します。
 
その代わり、セキュリティは低下します。
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
ssh-keygen -b 2048 -t rsa -f ~/.ssh/id_rsa.nopass -N '' -C "$USER-`date '+%Y-%m-%d'`"
+
ssh-keygen -b 4096 -t rsa -f ~/.ssh/id_rsa.nopass -N '' -C "$USER-`date '+%Y-%m-%d'`"
 
</syntaxhighlight>
 
</syntaxhighlight>
  

2013年6月9日 (日) 19:47時点における版

ssh-keygen とは、ssh の認証鍵の生成、管理、変換をするためのコマンドです。 Secure Shell の利点の1つである公開鍵認証を使うために、鍵ペア が必要です。 ssh-agent を利用することで、さらに利便性が向上します。

読み方

ssh-keygen
えすえすえいち きーじぇん

概要

ssh-keygen とは、ssh の認証鍵の生成、管理、変換をするためのコマンドです。 Secure Shell の利点の1つである公開鍵認証を使うために、鍵ペア が必要です。 ssh-agent を利用することで、さらに利便性が向上します。

RSA鍵は、 2048bit の鍵で十分だと考えられています。

ssh-kengen で作成した公開鍵 ( *.pub ) は、authorized_keys に登録します。 公開鍵 ごとにアクセス元や実行できるコマンド、pty を使わせるか、などを設定できます。

SSH のプロトコルと暗号と鍵ペアのファイル名
プロトコルバージョン 暗号 デフォルトの秘密鍵ファイル名 デフォルトの公開鍵ファイル名
SSH 2 rsa id_rsa id_rsa.pub
SSH 2 dsa id_dsa id_dsa.pub
SSH 1 rsa1 identity identity.pub

インストール

ssh-keygen は、 ssh のパッケージに含まれています。

書式

     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 [-m key_format] [-f input_keyfile]
     ssh-keygen -e [-m key_format] [-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 pkcs11
     ssh-keygen -F hostname [-f known_hosts_file] [-l]
     ssh-keygen -H [-f known_hosts_file]
     ssh-keygen -R hostname [-f known_hosts_file]
     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]
     ssh-keygen -s ca_key -I certificate_identity [-h] [-n principals]
                [-O option] [-V validity_interval] [-z serial_number] file ...
     ssh-keygen -L [-f input_keyfile]

使い方

RSAの鍵ペアの作成

鍵ペア の作成は、下記の通りです。

ssh-keygen -b 4096 -t rsa -f ~/.ssh/id_rsa.`date '+%Y-%m-%d'` -N '' -C "$USER-`date '+%Y-%m-%d'`"

パスフレーズなしの秘密鍵の作成

アプリケーションアカウント で実行する cron (バッチ) で ssh を使う場合には、パスフレーズのない秘密鍵 を利用すると、環境構築は、楽になります。 その代わり、セキュリティは低下します。

ssh-keygen -b 4096 -t rsa -f ~/.ssh/id_rsa.nopass -N '' -C "$USER-`date '+%Y-%m-%d'`"

ログインシェルrbashscponly を利用して、実行できるコマンドを制限したり、authorized_keys でコマンドやアクセス元などの制限を行うべきです。

詳しくは、パスフレーズのないsshの秘密鍵の作成をご参照ください。

パスフレーズを変更する

古いパスフレーズ foo から 新しい パスフレーズ bar に変更する例です。

ssh-keygen -p foo -N bar -f ~/.ssh/id_rsa

known_hostsファイルからホストを削除する

ssh-keygenコマンドを使って、sshdのホストキーをknown_hostsから削除できます。 foo.local のキーを削除したい場合は、下記の通りです。

ssh-keygen -R foo.local

下記は、実行例です。

%ssh-keygen -R foo.local
/home/foo/.ssh/known_hosts updated.
Original contents retained as /home/foo/.ssh/known_hosts.old


Windows を利用している場合

WindowsPuTTY を利用している場合は、 PuTTYgen鍵ペア を作成できます。 PuTTYgen は、PuTTY 形式の秘密鍵OpenSSH 形式の秘密鍵 を相互に変換できます。

関連項目