趣味のプログラミングや勉強で使うために、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 # 設定の反映のため