ssh接続でパスワード認証を許可したり禁止したりする方法
設定方法
パスワード認証の設定変更や変更の反映方法について
設定変更
CentOS 7 だとsshdの設定ファイルは以下のディレクトリにあります。
/etc/ssh
パスワード認証の設定があるのは、以下の設定ファイルになります。
/etc/ssh/sshd_confこれを編集しますが、編集前にバックアップを作成しておきます。
cp /etc/ssh/sshd_config /etc/ssh/ssh_config.old_20191020
項目は、PasswordAuthentication になります。 許可する場合は、yesにします。禁止の場合は、noにします
PasswordAuthentication yes
変更後の確認
変更したら、念のためバックアップと差分を取って変更箇所を確認しておきます。
# diff sshd_config sshd_config.old_20191020 65c65 < PasswordAuthentication yes --- > PasswordAuthentication no
次に変更した設設定ファイルの正当性を以下のコマンドで確認します。 下記を実行して何も表示されなければOKです。
sshd -t間違いがある場合は、以下のようになります。
sshd -t /etc/ssh/sshd_config line 65: Bad yes/no argument: yessこれは yes のところを yess と入力したためです。
また次のコマンドで、設定ファイルの正当性と、パスワード関係の設定値が確認できます。 オプション -T は、拡張テストモードで、今の設定ファイルを読み込んで有効な設定項目を標準出力に表示してくれます。
sshd -T | grep password実行すると以下のようになり、パスワード認証が許可で、カラのパスワードは禁止になっていることが確認できます。
sshd -T | grep password passwordauthentication yes permitemptypasswords no注意 これは現在起動しているsshdの設定でなく、今の設定ファイルを読み込んだ結果なので、今動作しているsshdとは異なる可能性があります。
変更の反映
設定にミスなどがあれば、最悪sshdが起動しなかったり、リモートログインできない場合もあります。
確認には念を入れてください。
変更した設定に問題なければ、sshdを再起動して変更を反映します。
systemctl restart sshd