鍵ベースの認証でのみsshを介してrootにログインすることを許可します


49

上の特定のsshサーバー設定について疑問があります/etc/ssh/sshd_config。次の動作が必要です:

  1. 公開鍵認証は、ルートとして認証する唯一の方法です(パスワード認証などは不可)
  2. 通常のユーザーは両方を使用できます(パスワードと公開キー認証)

私が設定した場合PasswordAuthentication no、最初のポイントは満足しますが、2番目のポイントは満足しません。PasswordAuthentication noルートのみに設定する方法はありますか?

回答:


78

これは、PermitRootLoginディレクティブを使用して実行できます。sshd_configマンページから:

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

このオプションが「パスワードなし」に設定されている場合、パスワード認証はルートに対して無効になります。

以下はあなたが望むものを達成します:

PasswordAuthentication yes
PermitRootLogin without-password

1
Debianでこれを試しservice ssh restart、サーバーで検証し、クライアントでキーなしで接続しようとしましたがssh -o PreferredAuthentications=password -o PubkeyAuthentication=no root@host、実際にはパスワードでログインできませんでしたが、rootユーザーのキーではできました。
バスティアン

ええ、でも代わりにこれを行うだけなら、パスワードでログインできます:ssh -o PreferredAuthentications=password root@host特に安全ではないimho
geoidesic

2
2019では、「PermitRootLogin禁止パスワード」です。古いパスワードなしは非推奨のエイリアスです。
vbraun

10

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

PasswordAuthentication yes
PermitRootLogin yes

Match User root
PasswordAuthentication no

3
これを実行して、sshサーバーからロックアウトされました。
リチャードメッツラー

これは、rootに対してパスワードプロンプトを表示したくない場合に最適な方法のようです。
レオ

これも私を締め出しました。私はそれが間違った順序であるかもしれないと思う...
ゲイリー

3

私のサーバーでroot権限を付与するには、さらに制限的なアプローチがあります。これは、私のような妄想的な人にとっては興味深いかもしれません。何をするのか、どの順序で行うのかに注意してください。そうしないと、rootアクセスを取得できないシステムになってしまう可能性があります。

  • sshd_confid の末尾sugroup次の行追加することにより、特定のグループを作成します。このグループのメンバーはルートになることを許可され、このグループのキー認証のみを許可します。

Match Group sugroup

PasswordAuthentication no

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

この構成を使用するには、キー認証とパスワードを使用してrootになる必要があります。認証方法に関係なく、sshを介した直接のルートアクセスを望まないため、このようにサーバーを構成しました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.