趣味のプログラミングや勉強で使うために、VPS を契約した。 使い始めに設定したことなどを備忘録として残しておく。

環境

メモリ512MBでUbuntu22.04が選べなかったので、Debian12にしてみた。

# cat /etc/os-release
PRETTY_NAME="Debian GNU/Linux 12 (bookworm)"
NAME="Debian GNU/Linux"
VERSION_ID="12"
VERSION="12 (bookworm)"
VERSION_CODENAME=bookworm
ID=debian
HOME_URL="https://www.debian.org/"
SUPPORT_URL="https://www.debian.org/support"
BUG_REPORT_URL="https://bugs.debian.org/"

パッケージのアップグレード

まずパッケージのアップグレードを実施した。

# apt update
# apt -y upgrade

アップグレード時に、sshd_config を上書きするか聞かれたが、サーバ構築直後のため install the package maintainer's version を選択しておく。

Package configuration

   │ A new version (/tmp/tmp.YABMpE73l1) of configuration file /etc/ssh/sshd_config is available, but the version installed currently has   │
   │ been locally modified.                                                                                                                 │
   │                                                                                                                                        │
   │ What do you want to do about modified configuration file sshd_config?                                                                  │
   │                                                                                                                                        │
   │                                          install the package maintainer's version                                                      │
   │                                          keep the local version currently installed                                                    │
   │                                          show the differences between the versions                                                     │
   │                                          show a side-by-side difference between the versions                                           │
   │                                          show a 3-way difference between available versions                                            │
   │                                          do a 3-way merge between available versions                                                   │
   │                                          start a new shell to examine the situation                                                    │
   │                                                                                                                                        │
   │                                                                                                                                        │
   │                                                                 <Ok>                                                                   │
   │                                                                                                                                        │

Progress: [ 98%] [################################################################################################################################################...]

ロケールの変更

デフォルトのシステムロケールが日本語だった。エラーメッセージを検索するときに英語の方が都合がいいので英語に変更する。ロケールの設定を反映させるため一旦 reboot する。

# localectl set-locale LANG=en_US.UTF-8
# reboot # 設定の反映のため

ホスト名変更

デフォルトだとIPアドレスのハイフン区切りになっていたため変更した。

# hostnamectl set-hostname {hostname}

ユーザ追加

作業用のユーザを追加する。 Full Name などの情報を聞かれるが特に設定しなくてよし

# adduser foo
Adding user `foo' ...
Adding new group `foo' (1000) ...
Adding new user `foo' (1000) with group `foo (1000)' ...
Creating home directory `/home/foo' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for foo
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y
Adding new user `foo' to supplemental / extra groups `users' ...
Adding user `foo' to group `users' ...

sudo を使えるよう、sudo グループに追加する

# adduser foo sudo
Adding user `foo' to group `sudo' ...
Done.

ssh 接続の設定

公開鍵認証で ssh できるように、公開鍵を置く。

公開鍵の登録

  • クライアントマシンにある公開鍵をサーバに送る
$ scp ~/.ssh/id_rsa.pub foo@{hostname}:~/
  • サーバに公開鍵を登録する
$ mkdir -m 700 ~/.ssh
$ mv ~/id_rsa.pub ~/.ssh/authorized_keys
$ chmod 600 ~/.ssh/authorized_keys

sshd の設定

以下の設定を無効にしておく。

  • root ログイン
  • パスワード認証
$ vim /etc/ssh/sshd_config
$ grep /etc/ssh/sshd_config -e "^PermitRootLogin" -e "^PasswordAuthentication"
PermitRootLogin no
PasswordAuthentication no
$ sudo systemctl restart sshd # 設定の反映のため