私はSSHサービスへのパスワードログインを無効にできるスクリプトを生成するように指定されました。 /etc/sshd_configファイルを編集することでこれを行うことができることを知っていますが、インストラクターは私が見なければならないファイルが/ etc / passwordファイルであると述べました。これがこの仕事の私の手がかりでした。これが私がしたことです。ユーザーから「x」記号を削除しました。このフィールドはハッシュされたパスワード用に予約されていると思います。
オリジナル
pi:x:1000:1000:,,,:/home/pi:/bin/bash
編集後:
pi::1000:1000:,,,:/home/pi:/bin/bash
結果:キーはありません。パスワードウィンドウのみ再入力できます。
わかりやすくするために更新されました:このスクリプトは、piサーバーにログインするための公開鍵と秘密鍵に応答するために使用する必要があります。つまり、セキュリティ強化機能を作成し、パスワードのないログインを試してみました。
答え1
ファイルを直接編集する必要はありませんが、/etc/passwd
必要に応じて編集できます。
passwd --lock pi # Lock the "pi" user account
ロックされたアカウントのロックを解除する方法など、より多くのオプションを表示するにはを使用してくださいman passwd
。言うまでもなく、このコマンドは〜しなければならないroot権限で実行してください。
これで、簡単な編集で強制できるSSHパスワードベースの認証を無効にしたいと説明するために、質問を編集したことを確認しました/etc/ssh/sshd_config
。
PasswordAuthentication no
サービスを再起動することを忘れないでください。systemctl restart sshd
答え2
@roaimaが正しいpasswd
コマンドやsshd_configはおそらくあなたが望むものかもしれませんが、いくつかの選択肢を指摘したいと思います。
1)パスワードの先頭に感嘆符を追加します(実際にはこれを行いますpasswd -l
。マニュアルページを参照)。実際のパスワードハッシュは/etc/shadow
ではありません/etc/passwd
。
2)アカウントusermod --expiredate 1
(またはpasswdのマニュアルページの過去の日付)を無効にする(「有効期限前」)。
chsh -s /usr/sbin/nologin
3)または編集してシェルを「/usr/sbin/nologin」に変更します/etc/passwd
。多くの Debian 子供は、専用アカウント (Apache、メール、sshd など) への注入攻撃を防ぐために、システム/サービスアカウントを識別するために使用します。