SSH認証方式をユーザーごとに設定する

SSH認証の設定は全ユーザーが影響を受ける

SSH認証は/etc/ssh/sshd_configで設定できます。ここで、パスワード認証方式または公開鍵認証方式(RSA・DSAなど)またはその両方を併用などに設定できるのですが、この設定は全ユーザーが影響を受けます。例えば、セキュリティのために公開鍵方式に限定した場合、全ユーザーが公開鍵方式を使用することになります。逆もしかりです。併用にすると、公開鍵かパスワードのどちらかで認証できますが、セキュリティ上最も脆弱な状態になります。

では、公開鍵認証に統一したとして、ある特定のユーザーだけ公開鍵認証ではなくパスワード認証させたいという要望が発生した場合はどうすれば良いでしょうか。

sshd_configのMatchオプション

そんなときに便利なのが、sshd_configのMatchオプションです。例えばsshd_configの設定が以下のようになっていても、

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      .ssh/authorized_keys
PasswordAuthentication no

その下に次のMatch設定を入れれば、特定ユーザーだけパスワード認証になります。

Match User saito
  PasswordAuthentication yes

(ユーザー名は必要とされるユーザーに変えてご使用ください)

X Forwardingにも有効

このMatch設定は、特定ユーザーにだけX Windowを転送させたいなどの用途にも使えます。その場合は、以下のように記述します。

Match User saito
X11Forwarding yes

本来、セキュリティの観点からこのような例外ユーザーは作るべきではありませんが、やむを得ずその必要性が出た時には便利なオプションです。