web-dev-qa-db-ja.com

ルートSSHログインを拒否し、ユーザーにSSHキーを要求する方法

この同様の質問 を読んだ後、user(キーまたはパスワード)へのSSHアクセスを拒否しながら、rootにSSHキーを要求する方法がわかりません。 rootになる必要がある場合は、ユーザーとしてログインした後にSudoを使用します。

SSHキーを要求する方法を知っています。

PermitRootLogin without-password

ユーザー「root」のログインを無効にする方法を知っています:

PermitRootLogin no

ユーザーをホワイトリストに登録する方法を知っています。

AllowUsers user

これをすべてまとめる方法がわかりません(または必要な場合でも-SSHキーで十分かもしれません)。私は通常、試行錯誤を通してこのような答えを解決しますが、私はこのサーバーから自分を締め出すのではないかと心配しています...

5
Tom Brossman

パスワードによるログインを許可しない場合は、サーバーのPasswordAuthentication nosshd_confを設定するだけです。

正確には思い出せませんが、少なくともルートログインはデフォルトではないと思います。

~/.ssh/authorized_keysに公開鍵を持たないシステム上のユーザーとしてログインしようとすると、パスワードが設定されているかどうか、またはパスワードログインが設定されていない場合はシェルが使用可能かどうかを尋ねられます。無効になりました。

私はあなたが望むのは単純だと思います:

 PasswordAuthentication no 
 PermitRootLogin no 

これにより、sshキーまたはパスワードを使用したルートログインが許可されなくなり、ユーザーの~/.ssh/authorized_keysファイルに公開キーがあるため、有効なキーでログインする必要があります。

7
dobey