一部のSSHサーバー構成についていくつかの質問があります/etc/ssh/sshd_config
。次の動作が必要です。
- 公開鍵認証は、ルートとして認証する唯一の方法です(パスワード認証やその他の認証は必要ありません)。
- 一般ユーザーはパスワードと公開鍵認証の両方を使用できます。
最初のポイントを設定するとPasswordAuthentication no
満足ですが、2番目のポイントは満足できません。PasswordAuthentication no
root権限のみを設定する方法はありますか?
答え1
このPermitRootLogin
コマンドを使用してこれを実行できます。sshd_config
マンページから:
ルートがssh(1)を使用してログインできるかどうかを指定します。パラメーターは、「yes」、「without-password」、「forced-commands-only」、または「no」でなければなりません。デフォルトは「はい」です。
このオプションを「without-password」に設定すると、ルートのパスワード認証が無効になります。
次はあなたが望むものを達成します。
PasswordAuthentication yes
PermitRootLogin prohibit-password
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 no
SSHを介した直接ルートログインを拒否するには、inを使用します/etc/ssh/sshd_config
。
この構成を使用するには、ルートになるための鍵認証とパスワードが必要です。私は認証方法に関係なくSSHなしで直接ルートアクセスを好むので、このようにサーバーを構成します。