Ubuntu 20.04インストール後に行うこと。
バージョン 2 (手動人形, 2024/01/09 09:41) → バージョン 3/4 (手動人形, 2024/01/09 09:45)
{{TOC}}
### SSH設定
Ubuntu系OSをメディアからインストールした場合、SSHがインストールされていないことがほとんどです。
```bash
sudo apt install ssh
```
#### SSH鍵ペア作成
鍵認証でログインできるようにします。
```bash
ssh-keygen -t ed25519
# 鍵の格納場所は空Enter。(/home/hoge/.ssh/
# パスワードを設定します。
```
#### SSH鍵ペア作成確認
- 秘密鍵の管理は慎重に行ってください。
- パスワードも可能な限り設定して安全性を保ってください。
```bash
cd .ssh
ls -l
# 以下のファイルを確認します
# └id_ed25519
# └id_ed25519.pub
# ※これらのファイルはscp等で自分のクライアントにコピーします
```
#### 鍵の設定変更
- 公開鍵をauthorized_keysに変更し、パーミッションを厳密にします
```bash
mv id_ed25519.pub authorized_keys
chmod 600 authorized_keys
```
#### 接続確認
この後、ローカルにコピーしたid_ed25519をSSHターミナルクライアントに保存して設定し、接続確認を行います。
#### SSHのパスワード認証を禁止
- バックアップディレクトリ作成
```bash
sudo mkdir /etc/old
```
任意のバックアップディレクトリを作成します。
- SSH設定ファイルバックアップ
```bash
sudo cp -pi /etc/ssh/sshd_config /etc/old/sshd_config.$(date +%Y%m%d)
```
- バックアップ確認
```bash
diff -u /etc/ssh/sshd_config /etc/old/sshd_config.$(date +%Y%m%d)
```
エラーがない(差分がない)ことでバックアップを確認します。
- ファイル書き換え
```bash
sudo sed -i -e 's/^#PasswordAuthentication yes/PasswordAuthentication no/' -e 's/^#PermitEmptyPasswords no/PermitEmptyPasswords no/' /etc/ssh/sshd_config
```
- 差分確認
```bash
diff -u /etc/old/sshd_config.$(date +%Y%m%d) /etc/ssh/sshd_config
```
- 差分
```diff
-#PasswordAuthentication yes
-#PermitEmptyPasswords no
+PasswordAuthentication no
+PermitEmptyPasswords no
```
- SSH再起動
**※この作業の前に、必ず、SSH接続は別に開けておいてください。※**
```bash
sudo systemctl restart ssh.service
```
#### SSH設定反映確認
1. 新しくターミナルを起動します。
1. パスワードでSSHログインできないことを確認します。
1. 事前に転送しておいた秘密鍵でログインできることを確認します。
### 最初のアップデートとアップグレード
パッケージ全体のアップグレードを行います。
```bash
sudo apt update && sudo apt upgrade
```
アップグレード後、再起動を行います。
```bash
sudo reboot
```
#### ホスト名をドメインつきにする
Ubuntu系OSはインストール時に`hoge.example.com`と設定しても、
```bash
uname -n
# hoge(インストール時に設定したホスト名のみ)となっています。
```
とホスト名だけになるパターンが多いです。そこで、
```bash
sudo hostnamectl set-hostname hoge.example.com
```
```
として、(ホスト名やドメインや設定に合わせます)
設定後、 設定語、
```bash
uname -n
# hoge.example.comを確認します。
```
### プロンプト設定
最初期のプロンプトは
```bash
hoge@hoge$
```
```
になっているので、好みに沿って設定していきます。
- 一般ユーザの.bashrc設定
```bash
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が統一されないので、やむなくこの方法をとります。
```bash
sudo su -
```
```bash
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セッションを開き直します。以下を確認します。
1. 緑文字で`[hoge@hoge.example.com~]$`のように表示される。(一般ユーザー)
1. 赤文字で`[root@hoge.example.com~]#`のように表示される。(root)
### aptitudeインストール
これは完全に筆者の好みです。パッケージ管理をaptではなくaptitudeに変えます。
```bash
sudo apt install aptitude
```
### SSH設定
Ubuntu系OSをメディアからインストールした場合、SSHがインストールされていないことがほとんどです。
```bash
sudo apt install ssh
```
#### SSH鍵ペア作成
鍵認証でログインできるようにします。
```bash
ssh-keygen -t ed25519
# 鍵の格納場所は空Enter。(/home/hoge/.ssh/
# パスワードを設定します。
```
#### SSH鍵ペア作成確認
- 秘密鍵の管理は慎重に行ってください。
- パスワードも可能な限り設定して安全性を保ってください。
```bash
cd .ssh
ls -l
# 以下のファイルを確認します
# └id_ed25519
# └id_ed25519.pub
# ※これらのファイルはscp等で自分のクライアントにコピーします
```
#### 鍵の設定変更
- 公開鍵をauthorized_keysに変更し、パーミッションを厳密にします
```bash
mv id_ed25519.pub authorized_keys
chmod 600 authorized_keys
```
#### 接続確認
この後、ローカルにコピーしたid_ed25519をSSHターミナルクライアントに保存して設定し、接続確認を行います。
#### SSHのパスワード認証を禁止
- バックアップディレクトリ作成
```bash
sudo mkdir /etc/old
```
任意のバックアップディレクトリを作成します。
- SSH設定ファイルバックアップ
```bash
sudo cp -pi /etc/ssh/sshd_config /etc/old/sshd_config.$(date +%Y%m%d)
```
- バックアップ確認
```bash
diff -u /etc/ssh/sshd_config /etc/old/sshd_config.$(date +%Y%m%d)
```
エラーがない(差分がない)ことでバックアップを確認します。
- ファイル書き換え
```bash
sudo sed -i -e 's/^#PasswordAuthentication yes/PasswordAuthentication no/' -e 's/^#PermitEmptyPasswords no/PermitEmptyPasswords no/' /etc/ssh/sshd_config
```
- 差分確認
```bash
diff -u /etc/old/sshd_config.$(date +%Y%m%d) /etc/ssh/sshd_config
```
- 差分
```diff
-#PasswordAuthentication yes
-#PermitEmptyPasswords no
+PasswordAuthentication no
+PermitEmptyPasswords no
```
- SSH再起動
**※この作業の前に、必ず、SSH接続は別に開けておいてください。※**
```bash
sudo systemctl restart ssh.service
```
#### SSH設定反映確認
1. 新しくターミナルを起動します。
1. パスワードでSSHログインできないことを確認します。
1. 事前に転送しておいた秘密鍵でログインできることを確認します。
### 最初のアップデートとアップグレード
パッケージ全体のアップグレードを行います。
```bash
sudo apt update && sudo apt upgrade
```
アップグレード後、再起動を行います。
```bash
sudo reboot
```
#### ホスト名をドメインつきにする
Ubuntu系OSはインストール時に`hoge.example.com`と設定しても、
```bash
uname -n
# hoge(インストール時に設定したホスト名のみ)となっています。
```
とホスト名だけになるパターンが多いです。そこで、
```bash
sudo hostnamectl set-hostname hoge.example.com
```
```
として、(ホスト名やドメインや設定に合わせます)
設定後、 設定語、
```bash
uname -n
# hoge.example.comを確認します。
```
### プロンプト設定
最初期のプロンプトは
```bash
hoge@hoge$
```
```
になっているので、好みに沿って設定していきます。
- 一般ユーザの.bashrc設定
```bash
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が統一されないので、やむなくこの方法をとります。
```bash
sudo su -
```
```bash
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セッションを開き直します。以下を確認します。
1. 緑文字で`[hoge@hoge.example.com~]$`のように表示される。(一般ユーザー)
1. 赤文字で`[root@hoge.example.com~]#`のように表示される。(root)
### aptitudeインストール
これは完全に筆者の好みです。パッケージ管理をaptではなくaptitudeに変えます。
```bash
sudo apt install aptitude
```