Contents
Overview
SSH サーバーを設定します。
前提条件
インストール
OS インストール時に SSH サーバーを有効化していればあらためてのインストールは不要ですが、インストールする場合は以下を実行します。ssh パッケージは openssh-client, openssh-server パッケージが含まれています。
myadmin@ubuntu:~$ sudo apt -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install ssh
openssh-client をインストールする場合は以下の通りです。
myadmin@ubuntu:~$ sudo apt -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install openssh-client
openssh-server をインストールする場合は以下の通りです。
myadmin@ubuntu:~$ sudo apt -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install openssh-server
/etc/ssh/sshd_config
SSH サーバーの設定ファイルは /etc/ssh/sshd_config です。
デフォルト値
デフォルト値は以下の通りです。
myadmin@ubuntu:~$ grep -v -e '^\s*#' -e '^\s*$' /etc/ssh/sshd_config | expand | tr -s [:space:] | sed 's/^\s/ /g'
Include /etc/ssh/sshd_config.d/*.conf
KbdInteractiveAuthentication no
UsePAM yes
X11Forwarding yes
PrintMotd no
AcceptEnv LANG LC_*
Subsystem sftp /usr/lib/openssh/sftp-server
PermitRootLogin
PermitRootLogin は、root ログインを制御する設定です。デフォルトは prohibit-password が指定されており、これは root に対してのパスワード認証拒否と公開鍵認証を必須とする設定ですが、Ubuntu の推奨に基づくとroot パスワードは設定しないため、意識しなくても問題ない設定ではあります。あえて設定するとしたら、以下のように root ログイン自体を無効にすることも一つのアイデアだと思います。
PermitRootLogin no
PasswordAuthentication
PasswordAuthentication はパスワード認証を制御する設定です。デフォルトは yes であり、パスワード認証が有効です。一般的にパスワード認証は無効化が推奨されますが、その他の何らかの制限(アクセス可能なネットワーク制限など)がある環境においては、公開鍵の管理が煩雑なため、有効にしたままの状態であることも多いです。原則的に不特定多数のアクセスが想定される SSH サーバーではパスワード認証の無効化は必須と考えて良いでしょう。パスワード認証の無効化設定は以下の通りです。
PasswordAuthentication no
設定の有効化
設定を有効化します(設定を変更した場合)。
myadmin@ubuntu:~$ sudo systemctl restart sshd.service && systemctl status sshd.service