SSHの公開鍵認証を設定した後、ユーザーパスワードを削除する必要がありますか?

SSHの公開鍵認証を設定した後、ユーザーパスワードを削除する必要がありますか?

SSH公開鍵を使用するのが最善です。だから私もsshd_configそうですPasswordAuthentication no

シェルを使用するsftpユーザーなど、一部のユーザーはログインしません/usr/sbin/nologin。またはシステムアカウント。

したがって、パスワードなしでそのようなユーザーを作成できますadduser gary --shell /usr/sbin/nologin --disabled-password

これは良い考えですか/悪い考えですか?私が考慮していない結果はありますか?

答え1

サーバーへのルートアクセス権があり、ユーザーがSSHキーを紛失した場合に備えてそれを再生成できる場合

そして

ユーザー(個人)が複数のアカウントを持っていないことは確実ですか?ユーザーアカウントSSHセッションを切り替える必要があります。多くの種類SSHセッション(必要な場合)

そして

彼らはしますいいえサーバーへの「物理」(キーボード+モニターまたは仮想マシンのリモートコンソール経由)のアクセスが必要です。

そして

パスワードで制御されたsudoアクセス権を持つユーザーはいません(つまり、sudoアクセス権がまったくないか、sudoアクセス権がありますNOPASSWD)。

私の考えでは、あなたは大丈夫だと思います。

当社の多くのサーバーはこのように構成されています(一部のアカウントのみがvmwareリモートコンソールを介してVMにアクセスする必要があり、他のアカウントはSSHおよび公開鍵認証を介してのみ接続する必要があります)。

答え2

この質問はもともと言及されましたpasswd --delete <username> 安全ではない:これにより、暗号化されたパスワードフィールドが/etc/shadow完全に空になります。

username::...

パスワード認証を拒否するように設定した場合は、sshdSSHを使用しても安全です。他の人システムのサービスはパスワード認証を使用し、空のパスワードを拒否するように構成されていません。アクセスするためにパスワードは必要ありません!あなたはこれをしたくありません。


adduser --disabled-passwd/etc/shadow暗号化されたパスワードフィールドがアスタリスクであるエントリを生成します。

username:*:...

これは「成功的に入力できない暗号化されたパスワード」です。つまり、アカウントは有効で技術的にログインを許可しますが、パスワードで認証することを意味します。成功できない。したがって、サーバーに別のパスワード認証ベースのサービスがある場合、ユーザーはそのサービスを使用できないようにブロックされます。

標準アカウントパスワード(SSHキーなど)以外の認証方法のみが、このユーザーとこのシステムでシステムパスワードファイルを使用するすべてのサービスに対して機能します。これは、SSHキーを介してのみログインできるユーザーが必要な場合に必要です。

既存のアカウントをこの状態に設定する必要がある場合は、次のコマンドを使用できます。

echo 'username:*' | chpasswd -e

暗号化されたパスワードフィールドには3番目の特別な値があります。adduser --disabled-loginこの場合、フィールドには感嘆符のみが含まれます。

username:!:...

アスタリスクと同様に、パスワード認証は成功できなくなりますが、追加の意味もあります。パスワードが特定の管理ツールに対して「ロックされた」状態で表示されることです。passwd -l既存のパスワードハッシュの前に感嘆符を追加すると、同じ効果が得られ、パスワード認証を再利用できなくなります。

しかし、不注意な人々のための問題は次のとおりです。 passwd2008年には、以前のパッケージのコマンドバージョンが変更され、shadow「アカウントロック」から「パスワードロック」に上書きされました。passwd -l指定された理由は、「他のパスワードバージョンとの互換性」です。

あなた(私のように)がこれをずっと前に学んだならば、これは驚くかもしれません。また、adduser(8)まだ区別を明確に認識していない人には役に立ちません。

無効な部品アカウントすべての認証方法について、アカウントの有効期限は実際に1:に設定されますusermod --expiredate 1 <username>。 2008年以前は、このタスクを実行するために使用されたソースファミリpasswd -lshadowまたパスワードの前に感嘆符を追加してください。しかし、これ以上やらないでください。

Debianパッケージの変更ログは次のように言います。

  • debian/patches/494_passwd_lock-no_account_lock:passwd -lの以前の動作を復元します(#389183で変更されました):ユーザーアカウントではなくユーザーパスワードのみをロックします。違いも明確に文書化されています。これにより、以前のバージョンのpasswdやその他の実装の一般的な動作が復元されます。閉じる:#492307

エラー履歴Debian のバグ 492307そしてエラー389183このアイデアを理解するのに役立ちます。

関連情報