プロジェクト

全般

プロフィール

Ubuntu 20.04インストール後に行うこと。

バージョン 1 (手動人形, 2024/01/05 15:44) → バージョン 2/4 (手動人形, 2024/01/09 09:41)

{{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
```
クリップボードから画像を追加 (サイズの上限: 50 MB)