ssh-keygenコマンドで鍵の作成
コンテンツ
Linux、Macなどでssh-keygenコマンドを実行すると、下記対話形式でSSH秘密鍵・公開鍵を作成します。
[user@localhost .ssh]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
09:f1:d9:84:dd:82:c4:55:2a:c3:65:59:8e:6a:a2:e1 user@localhost
The key's randomart image is:
+--[ RSA 2048]----+
| o.=p=o |
| +**+. |
| . . * +*. |
| . = |
| . q S |
| o |
| E |
| |
| Z |
+-----------------+
オプションを指定せず、下記入力で作成すると、デフォルトのホームディレクトリの.ssh ディレクトリに下記ファイルが作成されます。
Enter file in which to save the key (/home/user/.ssh/id_rsa):[空白でEnter]
Enter passphrase (empty for no passphrase):[空白でEnter]
[user@localhost .ssh]$ cd /home/user/.ssh
[user@localhost .ssh]$ ls
id_rsa id_rsa.pub
生成されるファイル
id_rsa:秘密鍵ファイル
id_rsa.pub:公開鍵ファイル
鍵の登録、使用方法
作成した鍵のうち公開鍵を、SSHで接続するサーバーに設置します。
OpenSSH利用の場合
OpenSSHを利用している場合、サーバーにおけるユーザーのホームディレクトリ直下に「.ssh」ディレクトリを作成し、そこにauthorized_keysファイル(鍵束ファイル)を作成し、公開鍵を登録していきます。
※authorized_keysは複数の公開鍵を登録するファイルなので、既存の情報を削除しないように追加モードで書き込みます
登録手順
- 作成した公開鍵 id_rsa.pubを、サーバのユーザーホームディレクトリ直下に設置する
- サーバーにアクセス
- .sshディレクトリを作成
- chmodコマンドで.sshディレクトリのパーミッション(アクセス権)を700に設定
- 作成した公開鍵 id_rsa.pubの内容を~/.ssh/authorised_keysに書き込む
- authorised_keysファイルのパーミッションを600に変更
$ mkdir ~/.ssh
$ chmod 700 ~/.ssh
$ cd ~/.ssh
$ cat ~/id_rsa.pub >> authorized_keys
$ chmod 600 authorized_keys
ssh-keygen オプションの説明
デフォルトでの実行以外に、各種オプションを指定して実行します。
option | 内容 |
---|---|
-t | 鍵の暗号化形式を指定します。「rsa」(デフォルト)「rsa」「dsa」「ecdsa」「ed25519」から指定します |
-b | 鍵のビット数を指定(RSA形式の場合デフォルトは2048bit) |
-q | 標準出力を無効にします なしで実行すると、キーマップが表示されます |
-f | 鍵を生成するファイルの保存場所を指定します(生成、または生成するファイルを指定) |
-p | パスフレーズを変更します(対話形式で元のパスフレーズを1回、新しいパスフレーズを2回指定)。元のパスフレーズは「-P」オプション、新しいパスフレーズは「-N」オプションで指定 |
-N | 新しく設定するパスフレーズを指定 |
-P | 元のパスフレーズを指定 |
-C | 実行する際のコメントを指定します(デフォルトは「ユーザー名@ホスト名」。「-C “”」でコメントを削除) |
-E | 鍵の指紋(fingerprint)を表示する際の形式指定します。「sha256」(デフォルト)か「md5」を選択 通常はsha256 |
上記コマンドオプションをもちいて作成します。
$ ssh-keygen -q -t rsa -b 4096 -C '' -N '' -f id_rsa
追記:hetemlでSSH鍵認証を行う
hetemlでもSSH鍵認証が行えます。
下記手順です。
- パスワード認証で、hetemlサーバーに接続
- ssh-keygen コマンドで 鍵を生成
- 生成した公開鍵を ~/.ssh/authorised_keys に書き込む
- 生成した秘密鍵をローカルに保存
上記が完了したら、Windows使用の場合、SSHツールのRloginをもちいて行います。
RLogin
http://nanno.dip.jp/softlib/man/rlogin/
Rlogin起動画面
ホスト名に、hetemlのSSH接続用ホスト名を入力します。
ログインユーザー名に、hetemlでのユーザー名を入力します。
TCPポートに、hetemlのSSHポート番号を入力します。
「SSH認証鍵」ボタンをクリックし、認証鍵登録画面を開きます。
生成した秘密鍵を指定し保存します。
これで接続が可能になります。