Linuxコマンド【 ssh-keygen 】認証用の鍵を生成する
当ページのリンクには広告が含まれています。
スポンサーリンク
ssh-keygenコマンドは、SSHで利用する認証用の鍵を生成・管理・変換するコマンドです。
SSHプロトコルバージョン1のRSA鍵、SSHプロトコルバージョン2のRSA鍵、DSA鍵が生成できます。
ssh-keygenコマンド
書式
ssh-keygen [オプション] -t 鍵タイプ [-N 新しいパスフレーズ] [-C コメント] [-f 鍵ファイル] ssh-keygen -p [-P 古いパスフレーズ] [-N 新しいパスフレーズ] [-f 鍵ファイル] ssh-keygen -i [-f 鍵ファイル] ssh-keygen -l [-f 鍵ファイル]
鍵の生成
RSA暗号の鍵を生成する場合、オプション-t rsa でssh-keygenコマンドを実行します。
$ ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/home/karuma/.ssh/id_rsa): ← Enterキーを押します Created directory '/home/karuma/.ssh'. ← ~/.ssh がない場合、ディレクトリを作成します Enter passphrase (empty for no passphrase): ← パスフレーズを入力します Enter same passphrase again: ← もう一度パスフレーズを入力します Your identification has been saved in /home/karuma/.ssh/id_rsa. Your public key has been saved in /home/karuma/.ssh/id_rsa.pub.
以上で、RSA暗号の鍵生成は完了です。~/.ssh/ディレクトリをlsコマンドでみてみましょう。
$ ls ~/.ssh id_rsa id_rsa.pub
秘密鍵(id_rsa)と公開鍵(id_rsa.pub)が生成されていますね。生成した鍵を使って、公開鍵認証でリモートマシンにSSH接続してみましょう。
パスフレーズの変更
鍵に保存されたパスフレーズを変更してみましょう。
$ ssh-keygen -p Enter file in which the key is (/home/karuma/.ssh/id_rsa): ← Enterキーを押します Enter old passphrase: ← 古いパスフレーズを入力します Key has comment '/home/karuma/.ssh/id_rsa' Enter new passphrase (empty for no passphrase): ← 新しいパスフレーズを入力します Enter same passphrase again: ← もう一度、新しいパスフレーズを入力します Your identification has been saved with the new passphrase.
鍵ファイルの変換
-i オプションを利用すると、公開鍵や秘密鍵をOpenSSHで利用できるように変換し、その結果を標準出力します。-f オプションで鍵ファイルを指定します。
# ssh-keygen -i -f id_rsa.pub >> authorized_keys
公開鍵の指紋(finger print)
SSHクライアントからSSHサーバーへ最初に接続すると何やら暗号のような英数字の羅列が表示されます。これはSSHサーバーの公開鍵の指紋(finger print)で、SSHサーバーを識別するのに利用されます。finger printを表示する場合は オプション -lを使い、オプション -fで鍵ファイルを指定します。
# ssh-keygen -lf /etc/ssh/ssh_host_rsa_key
実行すると意味不明な英数字が表示されます。これがSSHサーバーの公開鍵の指紋です。
ネットワーク の人気記事
- Linuxコマンド【 ssh 】リモートマシンにSSHでログインする
- Linuxコマンド【 sftp 】安全なファイル転送を行う
- Linuxコマンド【 traceroute 】ホストまでの経路を表示する
- Linuxコマンド【 scp 】リモートマシンにファイルコピーする
- Linuxコマンド【 ping 】ホストとの接続を確認する
- ifconfig - ネットワークインターフェースの設定・表示 - Linuxコマンド
- Linuxコマンド【 ntpdate 】日付と時刻をNTPサーバーと同期する
- manコマンドの表示を日本語にする方法
- Linuxコマンド【 nslookup 】対話的にDNSサーバーへ問い合わせる
- Linuxコマンド【 tcpdump 】ネットワークのトラフィックをダンプ