.ssh / authorized_keysをセットアップし、pub / privateキーを使用して新しい「ユーザー」でログインできます...「ユーザー」をsudoersリストに追加しました...私はsudoコマンドを実行しようとします。
$ sudo cd /root
入力したパスワードの入力を求められますが、機能しません(設定した秘密キーのパスワードを使用しています)
また、次を使用してユーザーのパスワードを無効にしました
$ passwd -l user
私は何が欠けていますか?
どこかで私の最初の発言が誤解されています...
私は自分のシステムを強化しようとしています...最終的な目標は、単純なパスワード認証ではなく、パブ/秘密鍵を使用してログインすることです。authorized_keysファイルを使用してすべてを設定する方法を見つけました。
さらに、最終的にルートアカウントを介したサーバーログインを防止します。しかし、それを行う前に、2番目のユーザー(常にシステムにログインするユーザー)のためにsudoが必要です。
この2番目のユーザーについては、「passwd -l user ...」を使用してユーザーをロックしない場合、通常のパスワードログインを禁止し、パブ/プライベートキーログインのみを強制します。その後、キーを使用しない場合、通常のパスワードでサーバーに入ります。
しかし、もっと重要なのは、パスワードが無効になっているユーザーとのpub / private keyセットアップでsudoを動作させる必要があることです。
編集: OK、私はそれを持っていると思います(解決策):
1)/ etc / ssh / sshd_configを調整して設定しました。PasswordAuthentication no
これにより、sshパスワードによるログインが防止されます(これを行う前に、公開キー/秘密キーが機能していることを確認してください)
2)sudoersリストvisudo
を調整し、追加しました
root ALL=(ALL) ALL
dimas ALL=(ALL) NOPASSWD: ALL
3)rootはパスワードを持つ唯一のユーザーアカウントです。パスワードが設定されていない2つのユーザーアカウント「dimas」と「sherry」でテストしています(パスワードは空白ですpasswd -d user
)
上記は基本的に全員がパスワードでシステムにログインすることを防ぎます(公開/秘密鍵を設定する必要があります)。
さらに、sudoersリストのユーザーには管理機能があります。またsu
、別のアカウントにもできます。だから、基本的には「ディマス」缶sudo su sherry
、しかし「ディマスが行うことはできませんsu sherry
。同様に、任意のユーザがsudoersファイルのリストにないわけではありませんsu user
かsudo su user
。
注上記は機能しますが、セキュリティが低いと見なされます。「dimas」または「sherry」ユーザーとしてコードにアクセスできるスクリプトは、sudoを実行してルートアクセスを取得できます。設定にかかわらずリモートユーザーがログインできるsshのバグ、Firefoxのようなものでのリモートコード実行、またはユーザーがrootとして実行できるようになり不要なコードが実行されることを可能にするその他の欠陥。Sudoには常にパスワードが必要です。そうでない場合は、他のユーザーの代わりにrootとしてログインすることもできます。