【SSH】ssh鍵ペアの生成方法 ssh-keygenコマンド・オプション解説【keygen】- heteml追記

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認証鍵」ボタンをクリックし、認証鍵登録画面を開きます。

生成した秘密鍵を指定し保存します。

これで接続が可能になります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA