回答:
サーバーへのルートアクセスがあり、ユーザーが失った場合に備えてユーザーのsshキーを再生成できる場合
そして
ユーザーは(個人として)複数のユーザーアカウントを持たず、SSHセッションでそれらを切り替える必要があります(必要に応じて複数の SSHセッションを開くこともできます)
そして
彼らがします決して(キーボード+モニターを介して、またはVM用のリモートコンソール経由で)サーバへのアクセスを「物理」必要はありません
そして
パスワードでsudo
アクセスするユーザーはいません(つまり、sudoアクセスがまったくない、またはsudoアクセスがありますNOPASSWD
)
あなたは良くなると思います。
このように構成された多くのサーバーが職場にあります(vmwareリモートコンソール経由でVMにアクセスする必要があるアカウントのみがあり、他のアカウントはpubkey authを使用してSSH経由でのみ接続します)。
PasswordAuthentication no
問題がある場合は別の問題です(ユーザーはとにかくログインできません)。
もともとpasswd --delete <username>
安全でないこの質問に言及しました。それで、暗号化されたパスワードフィールドは/etc/shadow
完全に空になります。
username::...
sshd
パスワード認証を拒否するように設定した場合、それはSSHで安全です...しかし、システム上の他のサービスがパスワード認証を使用し、nullパスワードを拒否するように設定されていない場合、パスワードなしでアクセスできます!これは必要ありません。
adduser --disabled-passwd
/etc/shadow
暗号化されたパスワードフィールドが単なるアスタリスクであるエントリを生成します、すなわち
username:*:...
これは「正常に入力できない暗号化されたパスワード」です。つまり、アカウントは有効であり、技術的にログインを許可しますが、パスワードによる認証は成功しません。したがって、サーバー上に他のパスワード認証ベースのサービスがある場合、このユーザーはそれらからブロックされます。
このシステムでシステムパスワードファイルを使用するすべてのサービスに対して、標準のアカウントパスワード(SSHキーなど)以外のものを使用する認証方法のみが機能します。SSHキーのみでログインできるユーザーが必要な場合、これが必要です。
既存のアカウントをこの状態に設定する必要がある場合は、次のコマンドを使用できます。
echo 'username:*' | chpasswd -e
暗号化されたパスワードフィールドには3番目の特別な値があります。adduser --disabled-login
このフィールドには、感嘆符が1つだけ含まれます。
username:!:...
アスタリスクと同様に、これによりパスワード認証が成功しなくなりますが、追加の意味もあります。一部の管理ツールではパスワードを「ロック」としてマークします。passwd -l
既存のパスワードハッシュの前に感嘆符を付けることで、同じ効果が得られます。これにより、パスワード認証を使用できなくなります。
しかし、ここに不注意な落とし穴があります。 2008年に、passwd
古いshadow
パッケージからのコマンドのバージョンがpasswd -l
「アカウントのロック」から「パスワードのロック」に再定義するように変更されました。述べられた理由は「他のpasswdバージョンとの互換性のため」です。
あなた(私のように)ずっと前にこれを学んだなら、それは厄介な驚きとして来るかもしれません。adduser(8)
明らかにこの区別にまだ気付いていない問題も助けにはなりません。
すべての認証方法でアカウントを無効にする部分は、実際にアカウントに有効期限の値1を設定していますusermod --expiredate 1 <username>
。2008年以前は、パスワードの前に感嘆符を付けることに加えて、これを行うために使用されていpasswd -l
たshadow
ソースキットに由来しますが、現在はそうではありません。
Debianパッケージの変更ログによると:
- debian / patches / 494_passwd_lock-no_account_lock:passwd -l(#389183で変更)の以前の動作を復元します。ユーザーのアカウントではなく、ユーザーのパスワードのみをロックします。また、違いを明示的に文書化します。これにより、以前のバージョンのpasswdおよび他の実装に共通する動作が復元されます。終了:#492307
Debianバグ492307およびバグ389183のバグ履歴は、この背後にある考え方を理解するのに役立つ場合があります。
adduser --disabled-passwd
-他のサービスがパスワード認証を許可している場合、ユーザーはパスワードなしでログインできますか?
adduser --disabled-password
そのアカウントのパスワード認証を成功させることはできません。
*
ので、使用に関する段落でそれについての段落を切り替えることをお勧めします。
passwd
ソースコードに登場しました。一度学んだことを頼りにしたものが、もはやそうではないことが判明したとき、あなたはそれを愛していませんか?
sudo
アクセスにパスワードが必要ない限り(sudo権限がないため、またはsudo権限があるためNOPASSWD
)、選択した答えが適切です。私はその答えを編集してsudoの懸念事項を含めましたが、その間にここであなたに電話することにしました。