Linux

【Linux入門】ssh-keygen RSA認証の鍵ペア作成方法

Linux

はじめに

以前、Puttyを利用して公開鍵・秘密鍵作成し、Windows端末からSSH接続をする手順を紹介させていただきました。

今回は、「ssh-keygen」コマンドを利用して鍵ペアを作成し、VM001からSSHサーバーVM002にSSH接続を行っていきます。

作業手順

鍵ペア(公開鍵・秘密鍵)の作成

Teratermにて「VM001」にログインし、次のコマンドを実行します。以下でコマンドの意味を説明します。

1行目、「ssh-keygen」コマンドを実行します。オプションは「rsa」を指定し、RSA認証の鍵ペアを作成します。

3行目、鍵の作成場所を指定します。デフォルト「/home/ユーザー名/.ssh/」で問題なければそのままEnterを押します。ディレクトリがない場合は自動で作成され権限は「700」となります。

5行目、秘密鍵を使う際に必要となるパスフレーズを入力します。秘密鍵は暗号化されているため使うためにはパスフレーズが必要になります。
6行目はもう一度パスフレーズを入力します。

[user01@VM001 ~]$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user01/.ssh/id_rsa):
Created directory '/home/user01/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user01/.ssh/id_rsa.
Your public key has been saved in /home/user01/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:mnWw6lrJ1J+pU9RASDQ1HslAGvjdmWjMj149l718jF4 user01@VM001
The key's randomart image is:
+---[RSA 2048]----+
|     ..+**=.     |
|    .  o.o+o     |
|     ..+.o.=     |
|      ..*o= .    |
|      ..S+..   o |
|     o *.o+oo o .|
|      B. o+  o.oE|
|     o  o.    .+o|
|    ... ..   .. .|
+----[SHA256]-----+
[user01@VM001 ~]$

鍵ペアの確認

作成した鍵ペアを確認します。「id_rsa」が秘密鍵、「id_rsa.pub」が公開鍵です。

[user01@VM001 ~]$ ll /home/user01/.ssh
total 8
-rw-------. 1 user01 user01 1766 May 25 01:24 id_rsa
-rw-r--r--. 1 user01 user01  394 May 25 01:24 id_rsa.pub
[user01@VM001 ~]

公開鍵をSSHサーバーに転送

作成した公開鍵をログイン先のサーバー(VM002)に転送します。以下コマンドの意味を説明します。

1行目、scpコマンドで安全にVM002にファイル転送を行います。公開鍵「id_rsa.pub」をVM002のユーザー「user02」のホームディレクトリに転送します。

2~5行目、VM002に初回ログインのためメッセージが表示されていますので「yes」を入力します。

7行目、VM002のパスワードを入力します。

[user01@VM001 ~]$ scp ~/.ssh/id_rsa.pub user02@VM002:
The authenticity of host 'vm002 (10.0.0.5)' can't be established.
ECDSA key fingerprint is SHA256:0i7gBmOJ8MF8WNiblh0ftWFuQ03JtISut5JXtvi+TFU.
ECDSA key fingerprint is MD5:cb:82:25:c6:9f:09:c1:6d:aa:59:bf:69:1a:e6:6e:c2.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'vm002,10.0.0.5' (ECDSA) to the list of known hosts.
Password:
id_rsa.pub                                    100%  394   186.1KB/s   00:00
[user01@VM001 ~]$

公開鍵を登録

Teratermにて「VM002」にログインします。
1行目、「user02」のホームディレクトリにない場合は「.ssh」ディレクトリを作成します。
2行目、VM001から転送した公開鍵の内容を「authorized_keys」に追記します。
3行目、「authorized_keys」のファイルのパーミッションを所有者だけ読み書き可能にします。

[user02@VM002 ~]$ mkdir -m 700 /.ssh
[user02@VM002 ~]$ cat id_rsa.pub >> ./.ssh/authorized_keys
[user02@VM002 ~]$ chmod 600 ./.ssh/authorized_keys

接続確認

「ssh」コマンドにてVM002にSSH接続します。
1行目、SSHサーバの「VM002」にユーザ「user02」でSSH接続します。ここで秘密鍵を指定しない場合、デフォルトで「/home/ユーザー名/.ssh/id_rsa」の秘密鍵が使用されます。「-i」オプションで明示的に秘密鍵を指定することも可能です。

3行目、秘密鍵は暗号化されているため、鍵ペアを作成した際に入力したパスフレーズを入力します。

4行目、無事VM002に接続できました。

5行目、「exit」コマンドにてSSH接続を終了することができます。

[user01@VM001 ~]$ ssh -l user02 VM002
Enter passphrase for key '/home/user01/.ssh/id_rsa':
Last login: Mon May 25 02:49:55 2020 from vm001.internal.cloudapp.net
[user02@VM002 ~]$
[user02@VM002 ~]$ exit
logout
Connection to vm002 closed.
[user01@VM001 ~]$

まとめ

いかがでしたでしょうか。今回は「ssh-keygen」での鍵ペアを作成からSSH接続まで紹介させていただきました。普段あまりやらないとつい忘れてしまうと思いますのでこれが復習の良い機会になりましたら幸いです。

今回は以上となります。ご覧いただきありがとうございます。

コメント

タイトルとURLをコピーしました