キーベース認証を介してSSH経由でルートのみログインすることを許可する

キーベース認証を介してSSH経由でルートのみログインすることを許可する

一部のSSHサーバー構成についていくつかの質問があります/etc/ssh/sshd_config。次の動作が必要です。

  1. 公開鍵認証は、ルートとして認証する唯一の方法です(パスワード認証やその他の認証は必要ありません)。
  2. 一般ユーザーはパスワードと公開鍵認証の両方を使用できます。

最初のポイントを設定するとPasswordAuthentication no満足ですが、2番目のポイントは満足できません。PasswordAuthentication noroot権限のみを設定する方法はありますか?

答え1

このPermitRootLoginコマンドを使用してこれを実行できます。sshd_configマンページから:

ルートがssh(1)を使用してログインできるかどうかを指定します。パラメーターは、「yes」、「without-password」、「forced-commands-only」、または「no」でなければなりません。デフォルトは「はい」です。

このオプションを「without-password」に設定すると、ルートのパスワード認証が無効になります。

次はあなたが望むものを達成します。

PasswordAuthentication yes
PermitRootLogin prohibit-password

~からOpenSSH 7.0 変更ログ

PermitRootLoginは、「パスワードなし」の明示的でない同義語で「禁止パスワード」パラメータを受け入れます。

その後、SSHサーバーを再ロードします。

systemctl reload sshd

通常どおり、他の端末ですべてが正常であり、エラーのためロックされていないことを確認するまで、アクティブ端末を閉じないでください。

答え2

Matchブロックを使用して、ユーザー別またはグループ別の認証、または接続元のIPアドレスまたはホスト名別にいくつかのオプションを構成できます。

PasswordAuthentication yes
PermitRootLogin yes

Match User root
PasswordAuthentication no

その後、SSHサーバーを再ロードします。

systemctl reload sshd

通常どおり、他の端末ですべてが正常であり、エラーのためロックされていないことを確認するまで、アクティブ端末を閉じないでください。

答え3

私のサーバーにroot権限を与えるより制限的な方法があります。行動および順序に注意しなさい。そうしないと、rootアクセス権を取得できないシステムが発生する可能性があります。

  • sugroup次の行を入力して、メンバーがルートになることができる特定のグループを作成し、そのグループのキー認証のみを許可します。最後にsshd_confid:

Match Group sugroup

PasswordAuthentication no

  • auth required pam_wheel.so group=sugroupにコマンドを入力してください/etc/pam.d/su。すでに存在する可能性があるため、コメントを外すだけです。 sugroupのメンバーではないすべてのユーザーのrootアクセスを拒否します。
  • 強力なルートパスワードを選択してください:)
  • 新しい認証方法が機能していることを確認し、次の場合にのみ機能することを確認してください。
  • PermitRootLogin noSSHを介した直接ルートログインを拒否するには、inを使用します/etc/ssh/sshd_config

この構成を使用するには、ルートになるための鍵認証とパスワードが必要です。私は認証方法に関係なくSSHなしで直接ルートアクセスを好むので、このようにサーバーを構成します。

関連情報