【CentOS8】さくらVPSサーバーの初期設定 2020年版

さくらのVPSをレンタルして設定したときの覚書。

サーバー環境: CentOS 8.1, OpenSSH_7.4p1, OpenSSL 1.0.2k-fips
クライアント環境: Windows 10, TeraTerm 4.95

1.OSインストール

「標準OS」をインストール。
カスタムOSで最小構成にしようとしたけどエラーになったのでやめた。

起動サービス確認
# systemctl list-unit-files -t service

ファイアウォールはコンソールから設定できるパケットフィルタを使い、VPS上でポート制御は行わない。

ホスト名変更
# hostnamectl set-hostname server01.dksg.co.jp
# hostnamectl status

SELinux確認
# getenforce

EPELリポジトリ追加
# dnf install epel-release


2.SSHの鍵認証

SSHのバージョン確認
# ssh -V
OpenSSH_7.4p1, OpenSSL 1.0.2k-fips  26 Jan 2017

SSHでアクセスするときに鍵認証する。
公開鍵と秘密鍵の生成。
# ssh-keygen
パスフレーズはなし。

確認
# ssh-keygen -l
3072 SHA256
RSA 3072bitで生成されている。

sshdの設定変更。パスワードによる認証を無効化。 
# less /etc/ssh/sshd_config
PubkeyAuthentication yes
PasswordAuthentication no

AuthorizedKeysFileの名前に公開鍵を変更する。
# cd .ssh/
# mv id_rsa.pub authorized_keys

秘密鍵をアクセスするWindowsマシン側にコピーする。
一応名前を変えておく。
# less id_rsa
# mv id_rsa id_rsa.sshd

sshd再起動。今接続しているsshのセッションは切れないので大丈夫。
# systemctl restart sshd

TeraTermのパスワード認証でアクセスできないことを確認。
TeraTermで秘密鍵を指定してアクセスしてみる。
エラー
read error SSH2 private key file
error:0906D06C:PEM routines:PEM_read_bio:no start line

PEM形式でないと怒られた。
確かに「BEGIN OPENSSH PRIVATE KEY」となっている。
最近デフォルト値が変わったらしい。

サーバー上でpem形式に変換。
-pはパスフレーズを変更するオプション(参考:ssh-keygen(1) - OpenBSD manual pages)。
# ssh-keygen -p -m pem -f id_rsa.sshd

確認
# ssh-keygen -l
3072 SHA256

秘密鍵を上書きする。
# less id_rsa.sshd

無事接続成功。
もしかしたら最新のTeraTermではOPENSSH PRIVATE KEYでも大丈夫になっているかもしれない。


【関連記事】