SSH認証キーの作成(秘密鍵・公開鍵作成)

概要

ssh-keygenコマンドを使って認証キーを作成する方法を残します
ちなみにgenはGenerator(ライセンスキーを発行するプログラム)の略であり、
ssh接続するKey(鍵)を発行するGenerator(プログラム)と認識するとイメージしやすいかもです

検証環境

  • 接続元から接続先へのNW通信は問題ないものとする
  • SSHキーは指定なしでデフォルトで作成されるrsa形式とする
  • 接続元のユーザー名はUSER-NAME、接続先はrootで接続する
  • 接続元、接続先OSはRockeyLinux9
  • TeraTerm5を利用
  • 以下の赤字の部分が設定で必須の部分

秘密鍵・公開鍵の作成

① 接続元にて、以下のコマンドを実行する

@ 鍵の配置場所の作成
$ mkdir /home/USER-NAME/.ssh/
$ cd /home/USER-NAME/.ssh/

@ 鍵の作成(パスワードの設定はしないため全て空白)
$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/USER-NAME/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/USER-NAME/.ssh/id_rsa
Your public key has been saved in /home/USER-NAME/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:TJ6znrs7g4X0snOXX1M2vx8YOREwerjow1bF1YSukfw USER-NAME@HOST-NAME
The key's randomart image is:
+---[RSA 3072]----+
|           o.o+. |
|          + o... |
|        .o.+o.   |
|      .+..++ .o  |
|     . +So  ++ .o|
|      = +o . E+oo|
|       X.  . .o..|
|      =.=.o  . .o|
|       o*B ..  .o|
+----[SHA256]-----+
$

@ 鍵の確認
$ ls -la
-rw-------. 1 USER-NAME USER-NAME 2610 Nov 20 16:30 id_rsa ※秘密鍵
-rw-r--r--. 1 USER-NAME USER-NAME  579 Nov 20 16:30 id_rsa.pub ※公開鍵

@ 公開鍵の確認
$ cat id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCe8P.......USERN-NAME@HOST-NAME

②接続先に接続して、公開鍵をコピーする

@公開鍵の情報記載するファイルの作成
# touch /root/.ssh/authorized_keys
# chmod 600 /root/.ssh/authorized_keys
# vi /root/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCe8P.......USERN-NAME@HOST-NAME

③接続元にログインして、接続先にSSH接続できるか確認する

[USERN-NAME@接続元 ~] $
$ ssh root@接続先のIPアドレス、またはホスト名
Activate the web console with: systemctl enable --now cockpit.socket
Last login: Tue Dec 10 10:58:21 2024 from 124.24.58.61
[root@接続先 ~]#

備考

今回は接続元で鍵を作成しましたが、適切な場所に鍵があればWindowsのローカル環境で鍵を作成しても問題ございません(Windows内で作成する場合文字コードや改行に気を付けてください)
接続回りはconfigファイル等でいろいろな設定があるた、この手順で接続できなかった場合は調べてみるのもいいかもしれません。