Last update: 2024/12/15
ここ数年Cent OS 7をVPSにインストールして使っていたが、Cent OS 7のサポート終了にともない、VPSをRocky Linux 9に変更したので手順をメモしておく。
まず、OSの再インストールについては以下のさくらのVPSのマニュアルを読みながら、さくらのVPSのコントローラパネルからRocky Linux 9をインストールした。
設定は以下のようにした。
設定は以下を参照しながら進めた。
Rocky Linux 9 — さくらの VPS マニュアル
基本的にはマニュアル通り設定しただけなので詳細は割愛するが、以下の流れだけメモしておく。
dnf updateでパッケージをアップデートしておく。
$ sudo dnf -y update
まずはローカルPCで鍵ペアを作成する。Windowsで鍵ペアを作成する場合、WSLで作成したりTeraTermやPuTTYなどのターミナルソフトで作成したりと方法は色々あるが、今回はWindowsにデフォルトでインストールされているWindows PowerShellで作成する。
PowerShellを立ち上げて以下のコマンドを打ち、鍵ペアの保存場所、パスフレーズを2回入力して鍵ペアを作成する。保存場所を指定しなければ、C:\Users\ユーザー名\.sshに秘密鍵と公開鍵が保存される。
ssh-keygen -t ed25519
なお -tオプションをつけない場合は公開鍵暗号としてRSAが選択される。RSAでも問題はないが、ed25519の方が暗号としては新しく一般的にRSAよりセキュアで高速なので、ed25519で鍵ペアを作成した。
SSHの登録については以下のページを参考にした。※一部情報が古いので注意
Tera TermでVPSにログインし、TeraTermのSCP機能を使って、作成した公開鍵(id_ed25519.pub)を先ほど名前を変更したユーザーのホームディレクトリに置き、以下の手順鍵を登録する。登録後は鍵は不要なので削除しておく。
$ mkdir .ssh
$ chmod 700 .ssh
$ cat id_ed25519.pub > .ssh/authorized_keys
$ chmod 600 .ssh/authorized_keys
$ rm -f id_ed25519.pub
セキュリティ強化のため、以下のコマンドでsshdの設定ファイルを開いてPermitRootLoginとPasswordAuthenticationの設定を変更し、ルートユーザーのログインおよびパスワードでのログインを禁止する。なお、sudoeditの代わりにsudo viを使っても編集できるが、セキュリティ面から設定ファイルはsudoeditで編集したほうが好ましい。
$ sudoedit /etc/ssh/sshd_config
PermitRootLoginとPasswordAuthenticationで検索をかけるとデフォルトではコメントアウトされているので、その下に以下の設定を追加する。
PermitRootLogin no
PasswordAuthentication no
変更したら、設定を反映させるためにsshdを以下でrestartさせる。
$ sudo systemctl restart sshd
ここまで完了したら一度ログアウトし、TeraTermで以下のように先ほど作成した鍵とパスフレーズを使って接続してみたところ問題なく接続できた。
また、試しに鍵を使わずにパスワードでログインしてみたところ、ログインできないようになっていたので意図したとおり変更ができていることを確認した。
Copyright (c) 2024 kd