WebサーバーのOSをRedHat-CloneのAlmalinux9.3にした後、最初はSSH接続して、公開までしてきましたが、いざ、セキュリティアップのため、鍵認証接続に変更しようとしてつまずきました。このOSが暗号化方式で、SHA-1のサポートを終了したことが影響していることを、ネット検索したところ、先輩のサイトで知ったのですが・・・色々と設定自体でも問題がありました。今回、先輩のサイトを参考にさせてもらい、鍵認証接続が出来るようになったので、記録しました。
目次
秘密鍵・公開鍵ペアの作成
$ ssh-keygen -t ed25519
Generating public/private ed25519 key pair.
Enter file in which to save the key (/home/user/.ssh/id_ed25519): [空エンター]
Enter passphrase (empty for no passphrase): [空エンター]
Enter same passphrase again: [空エンター]
Your identification has been saved in /home/user/.ssh/id_ed25519 <ー秘密鍵
Your public key has been saved in /home/user/.ssh/id_ed25519.pub <ー公開鍵
The key fingerprint is:
SHA256:dHOUo+qG5uxvROuFa2B/Ht/Sx/NrOHYd8d1LMmv0l8A user@user-desktop
The key’s randomart image is:
+–[ED25519 256]–+
| .. |
| .o |
| ーーー . o… |
| ….o . |
| .S+ . =|
| ー– o = . E o+|
| ー . B o. ..O.=|
| 0 –.o O .o.B.B=|
| ++=.o. +.=o*|
+-—[SHA256]–+
$
公開鍵をWebサーバーにコピーします
クライアントPCで作成した公開鍵ファイルをサーバーに送る必要がありますが、簡単に済ませるには、クライアントで、鍵の内容(テキスト)をクリップボードにコピーし、サーバー側で公開鍵のファイル名を編集モードで開き、内容をクリアしてから、クリップボードから貼り付けます
~/.ssh$ cat id_ed25519.pub
ssh-ed25519 AAABE3NzaD8lZEI1NCF5CEEDICbsQqgnVaDAD6FeEv0jcn3DdRPL-alSkcQ8zfD4dL4v users@users-ubuntu ・・・・実際の値ではありません!
Webサーバーでの作業
/home/[user]/.sshでの作業
/home/[user]/.ssh# rm -f authorized_keys
/home/[user]/.ssh # ll
total 4
-rw-r–r–. 1 [user] [user] 575 Feb 7 16:33 authorized_keys.back
# vi authorized_keys
# Shift+i 挿入モードにした後、Ctrl+vで貼り付け
# Ctrl+v
# Esc
# :wq
# ll
total 8
-rw——-. 1 user user 103 Feb 9 11:10 authorized_keys
-rw-r–r–. 1 user user 575 Feb 7 16:33 authorized_keys.back
サーバーのユーザーフォルダの権限を確認
# cd /home/
[root@fqdn home]# ll
total 4
drwxr-x–x. 3 root root 4096 Feb 7 15:50 [user-folder]
ローカルPCから鍵認証でサーバーに接続する
$ ssh [user]@192.168.100.107
Last login: Fri Feb 9 10:47:13 2024 from 192.168.100.75
[[user]@fqdn ~]$
正常にサーバーに鍵認証でログイン出来ました
鍵ファイルを指定する必要が無いことが分かりました
最近、OSのサポート終了対策として、始めは、CentOS7.6からAlmaLinux8.7のサーバーに移転しましたが、自宅サーバーとしてもスペック的に非力マシンでした。
そこで、CPUベンチマークが今までのサーバーより約10倍アップしたWebサーバーに、AlmaLinux8.7をインストールしようとしました。しかし、インストールにつまずきました。OSがAlmaLinux8.7のインストールメディアでは手順書通りにはインストール出来ませんでした。このため、新しいバージョンのAlmaLinux9.3でインストールをしました。インストールは正常に完了しましたが、どちらのサーバーも鍵認証接続が、今までの手順では、うまく行かない事は同じでした。
2月9日現在、公開サーバーと、一旦OSサポート終了対策のサーバーの2台を稼働しています。両方とも鍵のファイルは別の名前になっています。この鍵のファイルを指定しなくともOKでした。下の例を参照下さい(2つのサーバーの鍵は別の鍵を使用しています)
$ ssh user@192.168.100.105 ・・・・暫定サーバーへのSSHログイン
Last login: Fri Feb 9 10:46:33 2024 from 192.168.100.75
[user@east19-mikas ~]$
$ ssh user@192.168.100.107 ・・・・公開サーバーへのSSHログイン
Last login: Fri Feb 9 11:12:17 2024 from 192.168.100.75
[user@east19-mikas ~]$
sshd_configファイルの変更
設定ファイルを変更します
# vi /etc/ssh/sshd_config
Shift+i
42行目
PermitRootLogin no ・・・初期状態!
47行目
PubkeyAuthentication yes ・・・no→yes に変更
67行目
PasswordAuthentication no ・・・yes →no に変更
ESC
:wq
# systemctl restart sshd
参考にさせて頂いた先輩のサイト
Linuxでサーバー構築・・・さん
CentOSやAlmaLinuxで自宅サーバー・・・さん
他にも先輩方のサイトを参考にしました。御礼いたします