【CentOS Stream 9】SSHに鍵ペアで認証接続する

この記事は約9分で読めます。

 

公開鍵、秘密鍵ペアの作成

OpenSSH使ってLinuxサーバに接続するユーザの公開鍵と秘密鍵のペアを作成します。
鍵ペアの作成はssh-keygenを使います。
作成先・ファイル名を指定しなければ、/home/(ユーザ名)/.ssh/にid_rsa、id_rsa.pub が作成されます。
途中、鍵用のパスワードも入力します。

Bash
useradd testuser
su testuser
$ ssh-keygen

Generating public/private rsa key pair.
Enter file in which to save the key (/home/testuser/.ssh/id_rsa): //変更がなければ空Enter
Created directory '/home/testuser/.ssh'.
Enter passphrase (empty for no passphrase): //パスフレーズ設定(ノーパスの場合は空Enter
Enter same passphrase again:
Your identification has been saved in /home/testuser/.ssh/id_rsa
Your public key has been saved in /home/testuser/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:0cvJ0XqLzOp8X/wfLDIyQ+mSrOl7jl75NvFlT7uUQ0s testuser@localhost.localdomain</>
The key's randomart image is:
+---[RSA 3072]----+
| .E=*oo=o+       |
| . . + .o* +     |
| o . o = . .     |
| . + +           |
| * . . S o o     |
| + * + . = .     |
| =.+ = .         |
| +o= =           |
| +=+ . +         |
+----[SHA256]-----+

 

作成された鍵を確認

Bash
ll ~/.ssh

合計 8
-rw-------. 1 testuser testuser 2622 2 20 13:22 id_rsa
-rw-r--r--. 1 testuser testuser 584 2 20 13:22 id_rsa.pub

ide_rsa.pubをauthorized_keysに変更

Bash
mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys

サーバー側で作成したSSH秘密鍵をクライアント側に転送すると、そのクライアントから対象サーバーに鍵ペア認証でログインができるようになります。

Bash
chmod 700 ~/.ssh

// サーバーで作成した SSH 秘密鍵を転送
scp testuser@192.168.1.70:/home/testuser/.ssh/id_rsa ~/.ssh/

testuser@192.168.1.70 password:パスワードを入力
id_rsa 100% 2622 2.8MB/s 00:00

SSHにログインを試みる

Bash
$ ssh testuser@192.168.1.70
The authenticity of host '192.168.1.70 (192.168.1.70)' can't be established.
ED25519 key fingerprint is SHA256:0cvJ0XqLzOp8X/wfLDIyQ+mSrOl7jl75NvFlT7uUQ0s.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.1.70' (ED25519) to the list of known hosts.
Enter passphrase for key '/home/testuser/.ssh/id_rsa';
    __ ____  _______ ___    _   _____   __________
   / //_/ / / / ___//   |  / | / /   | / ____/  _/
  /  < / / / /__   / /| | /  |/ / /| |/ / __ / /
 / /| / /_/ /___/ / ___ |/ /|  / ___ / /_/ // /
/_/ |_____//____ /_/  |_/_/ |_/_/  | _____/___/

Version 9.4.12-1.el9, Powered by Prime Strategy.
Last login: Tue Feb 20 15:24:56 2024
$

 

作成した秘密鍵id_rsaをwinSCPでwindowsに保存

Winscpを起動して[新しいタブ]クリックします。

 

ホスト名:サーバーのIPアドレス
ポート番号:SSHポート
ユーザ名:サーバーのログインユーザー
パスワード:サーバーのログインユーザーのログインパスワード
を入力して、[保存]をクリックします。

 

セッションの保存名:任意の名前
を入力して[OK]をクリックします。

 

該当サーバーを確認後、[ログイン]をクリックします。

 

このような画面が表示されたら[承認]をクリックします。

 

接続されると左側がPC(Windows)側、右側がサーバー側の表示になります。
/home/testuser/.sshディレクトリにある”id_rsa”ファイルをWindows側の適当な場所に保存します。

 

SSH設定ファイルの編集

パスワード認証ができないようにするため、SSH設定ファイルを編集します。

Bash
vi /etc/ssh/sshd_config

PasswordAuthentication no //65行目:パスワード認証不可に変更

systemctl restart sshd

 

Tera Termでの接続

Tera termを起動後、左上のファイルをクリックして新しい接続を選択します。

 

ホスト:サーバーのIPアドレス
TCPポート:SSHポート番号
を入力して[OK]をクリックします。

 

初回接続時はこのようなセキュリティー警告が表示されるので[続行]をクリックします。

 

ユーザ名:ログインユーザー名
パスフレーズ:公開鍵・秘密鍵ペアの作成時に指定したパスワード
[RSA/DSA/ECDSA/ED25519を使う]を選択して、先ほどWindowsに保存したid_rsaを選択して[Ok]をクリックするとログインできます。

 

SSHに鍵ペアでの認証接続はこれで完了となります。

お疲れ様でした。

 

コメント

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