パスワードを使用したリモートログインを完全に無効にしたくはありませんが、キーペア認証でのみアカウントにアクセスできるようにしたいと思います(パスワードでログインしたい他のユーザーもいます)。可能であれば、システム設定を変更せずにユーザーごとにこの設定を変更できますか?
明らかに、私のアカウントへのsudoアクセス権があるので、パスワードをロックしたくありません。
答え1
一致オプションを使用できます。sshd_config
マッチ 条件付きブロックを導入します。 「一致」行のすべての条件が満たされると、次の行のキーワードは、別の「一致」行またはファイルの最後まで、構成ファイルのグローバルセクションで設定されたキーワードをオーバーライドします。 [1]
だから、ファイルの終わりに以下を指定できます。
Match User yourusername
PasswordAuthentication no
man 5 sshd_config
利用可能なすべてのオプションについては、リソースを参照してください。
[1]http://www.openbsd.org/cgi-bin/man.cgi?query=sshd_config&sektion=5
答え2
これジェイソン尿の答えこの変更を作成する正しい方法になります。私が追加する唯一の追加は、ホイールグループのすべてのユーザーがキーで認証する必要があり、他のユーザーがパスワードを使用できるようにグループベースの一致を設定できることです。
システム構成ファイルを変更せずにこれを実行したいのですが、これが不可能な理由は十分です。あなたの意見では、ユーザーはより安全なログインポリシーを持つことができるはずですが、これがより安全なオプションだと思っても、これがシステムへのログインであるという事実は変わりません。リモートユーザーに必要です。
これが問題になる理由を理解するには、反対のシナリオを想像してください。システム管理者(システム設定ファイルを変更できます)は、キーベースのログイン専用システムを設定します。その後、ユーザーが来て自分のユーザーファイルにのみアクセスでき、システムポリシーを無視してパスワード認証を許可するようにアカウントを設定します。ブザー音。セキュリティ質問!
これは、あなたが望む変更がシステム構成ファイルでのみ行われる理由を説明しますか?
答え3
自分に制限を追加して何も変更しないでください
sshがログイン試行に使用されるクライアントであると判断した場合、クライアントではないのはなぜですか?その場合は、sshd_configの代わりにssh_configを変更してみてください。 「PasswordAuthentication No」およびPreferredAuthenticationsパラメーターを確認してください。