Ubuntu 20.04/22.04インストール後に行うこと。
以下、コマンドラインでサーバとして設定するため筆者が行っている最低限の設定です。
SSH設定
Ubuntu系OSをメディアからインストールした場合、SSHがインストールされていないことがほとんどです。
sudo apt install ssh
SSH鍵ペア作成
鍵認証でログインできるようにします。
ssh-keygen -t ed25519
- 鍵の格納場所は空Enter。(/home/hoge/.ssh/
- パスワードを設定します。
SSH鍵ペア作成確認
-
秘密鍵の管理は慎重に行ってください。
-
パスワードも可能な限り設定して安全性を保ってください。
-
鍵格納ディレクトリに移動
cd .ssh
- ファイルの内容確認
ls -l
以下のファイルを確認します。
- id_ed25519
- id_ed25519.pub
※これらのファイルはscp等で自分のクライアントにコピーします。
鍵の設定変更
- ファイル名変更
mv id_ed25519.pub authorized_keys
- パーミッション設定
chmod 600 authorized_keys
接続確認
この後、ローカルにコピーしたid_ed25519をSSHターミナルクライアントに保存して設定し、接続確認を行います。
SSHのパスワード認証を禁止
- SSH設定ファイルバックアップ
sudo cp -pi /etc/ssh/sshd_config /path/to/backup/directory/sshd_config.$(date +%Y%m%d)
任意のバックアップディレクトリを指定します。
- バックアップ確認
diff -u /etc/ssh/sshd_config /path/to/backup/directory/sshd_config.$(date +%Y%m%d)
エラーがない(差分がない)ことでバックアップを確認します。
- ファイル書き換え
sudo sed -i -e 's/^#PasswordAuthentication yes/PasswordAuthentication no/' -e 's/^#PermitEmptyPasswords no/PermitEmptyPasswords no/' /etc/ssh/sshd_config
- 差分確認
diff -u /etc/old/sshd_config.$(date +%Y%m%d) /etc/ssh/sshd_config
- 差分
-#PasswordAuthentication yes
-#PermitEmptyPasswords no
+PasswordAuthentication no
+PermitEmptyPasswords no
- SSH再起動
※この作業の前に、必ず、SSH接続は別に開けておいてください。※
sudo systemctl restart ssh.service
SSH設定反映確認
- 新しくターミナルを起動します。
- パスワードでSSHログインできないことを確認します。
- 事前に転送しておいた秘密鍵でログインできることを確認します。
最初のアップデートとアップグレード
パッケージ全体のアップグレードを行います。
sudo apt update && sudo apt upgrade
アップグレード後、再起動を行います。
sudo reboot
ホスト名をドメインつきにする
Ubuntu系OSはインストール時にhoge.example.com
と設定しても、
uname -n
とホスト名だけになるパターンが多いです。そこで、
sudo hostnamectl set-hostname hoge.example.com
として、(ホスト名やドメインや設定に合わせます)
設定後、
uname -n
hoge.example.comを確認します。
プロンプト設定
最初期のプロンプトは
hoge@hoge$
になっているので、好みに沿って設定していきます。
- 一般ユーザの.bashrc設定
cat << ___EOF___ | tee -a ~/.bashrc
PS1="[\u@\H \W]\\$ "
# 一般ユーザ向けのプロンプト設定
if [ "\$PS1" ]; then
if [ "\$(id -u)" -eq 0 ]; then # rootユーザの場合
PS1='\[\e[0;31m\][\u@\H \W]#\[\e[0m\] '
else # 一般ユーザの場合
PS1='\[\e[0;32m\][\u@\H \W]\$\[\e[0m\] '
fi
fi
___EOF___
- root
Ubuntu系は.bashrcが統一されないので、やむなくこの方法をとります。
sudo su -
cat << ___EOF___ | tee -a ~/.bashrc
PS1="[\u@\H \W]\\$ "
# 一般ユーザ向けのプロンプト設定
if [ "\$PS1" ]; then
if [ "\$(id -u)" -eq 0 ]; then # rootユーザの場合
PS1='\[\e[0;31m\][\u@\H \W]#\[\e[0m\] '
else # 一般ユーザの場合
PS1='\[\e[0;32m\][\u@\H \W]\$\[\e[0m\] '
fi
fi
___EOF___
設定後、SSHセッションを開き直します。以下を確認します。
- 緑文字で
[hoge@hoge.example.com~]$
のように表示される。(一般ユーザー) - 赤文字で
[root@hoge.example.com~]#
のように表示される。(root)
aptitudeインストール
これは完全に筆者の好みです。パッケージ管理をaptではなくaptitudeに変えます。
sudo apt install aptitude