SSH 経由のパスワード ログインを無効にするコマンドはありますか?

SSH 経由のパスワード ログインを無効にするコマンドはありますか?

したがって、を に/etc/ssh/sshd_config変更することで、ssh 経由のパスワード認証を無効にできることはわかっています。すべてのユーザーに対して、ssh ログインがキーファイル経由でのみ実行できるようにしたいと考えています。PasswordAuthentication YesPasswordAuthentication no

このオプションを設定する便利なワンライナーコマンドはありますか?

答え1

私はこれを正常にテストしました:

sudo sed -E -i 's|^#?(PasswordAuthentication)\s.*|\1 no|' /etc/ssh/sshd_config
if ! grep '^PasswordAuthentication\s' /etc/ssh/sshd_config; then echo 'PasswordAuthentication no' |sudo tee -a /etc/ssh/sshd_config; fi

これは、ファイルをその場で編集するために使用します。にsed続くものを置き換えるだけでなく、Ubuntu ではデフォルトで存在する行の先頭のコメントを削除します。このコマンドを 2 回目または 3 回目に実行しても、ファイルに追加の変更は行われません。PasswordAuthenticationno

2 行目は、何らかの理由でファイルが削除された場合に備えて、ファイルに構成オプションを追加します。

関連情報