
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::...
パスワード認証を拒否するように設定した場合は、sshd
SSHを使用しても安全です。他の人システムのサービスはパスワード認証を使用し、空のパスワードを拒否するように構成されていません。アクセスするためにパスワードは必要ありません!あなたはこれをしたくありません。
adduser --disabled-passwd
/etc/shadow
暗号化されたパスワードフィールドがアスタリスクであるエントリを生成します。
username:*:...
これは「成功的に入力できない暗号化されたパスワード」です。つまり、アカウントは有効で技術的にログインを許可しますが、パスワードで認証することを意味します。成功できない。したがって、サーバーに別のパスワード認証ベースのサービスがある場合、ユーザーはそのサービスを使用できないようにブロックされます。
標準アカウントパスワード(SSHキーなど)以外の認証方法のみが、このユーザーとこのシステムでシステムパスワードファイルを使用するすべてのサービスに対して機能します。これは、SSHキーを介してのみログインできるユーザーが必要な場合に必要です。
既存のアカウントをこの状態に設定する必要がある場合は、次のコマンドを使用できます。
echo 'username:*' | chpasswd -e
暗号化されたパスワードフィールドには3番目の特別な値があります。adduser --disabled-login
この場合、フィールドには感嘆符のみが含まれます。
username:!:...
アスタリスクと同様に、パスワード認証は成功できなくなりますが、追加の意味もあります。パスワードが特定の管理ツールに対して「ロックされた」状態で表示されることです。passwd -l
既存のパスワードハッシュの前に感嘆符を追加すると、同じ効果が得られ、パスワード認証を再利用できなくなります。
しかし、不注意な人々のための問題は次のとおりです。 passwd
2008年には、以前のパッケージのコマンドバージョンが変更され、shadow
「アカウントロック」から「パスワードロック」に上書きされました。passwd -l
指定された理由は、「他のパスワードバージョンとの互換性」です。
あなた(私のように)がこれをずっと前に学んだならば、これは驚くかもしれません。また、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このアイデアを理解するのに役立ちます。