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等で自分のクライアントにコピーします
鍵の設定変更¶
- 公開鍵をauthorized_keysに変更し、パーミッションを厳密にします
mv id_ed25519.pub authorized_keys
chmod 600 authorized_keys
接続確認¶
この後、ローカルにコピーしたid_ed25519をSSHターミナルクライアントに保存して設定し、接続確認を行います。
SSHのパスワード認証を禁止¶
- バックアップディレクトリ作成
sudo mkdir /etc/old
任意のバックアップディレクトリを作成します。
- SSH設定ファイルバックアップ
sudo cp -pi /etc/ssh/sshd_config /etc/old/sshd_config.$(date +%Y%m%d)
- バックアップ確認
diff -u /etc/ssh/sshd_config /etc/old/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
# hoge(インストール時に設定したホスト名のみ)となっています。
とホスト名だけになるパターンが多いです。そこで、
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