ユーザーのパスワードログインを無効にしたいと思います。ただし、ユーザーはパスワードログインが無効になっていることを認識し、エラーメッセージ(公開鍵)の代わりにパスワードを求めるメッセージを表示したくありません。
これまで、私は以下を除くすべてのユーザーに対してパスワードログインを無効にできることを知っています。
PasswordAuthentication no
Match User toto
PasswordAuthentication yes
ただし、「not_toto」でログインしようとすると、サーバーに不要なエラーメッセージが表示されます。
これを行うには、opensshソースを変更する必要がありますか?それとも、そのタスクを実行する設定オプションはありますか?
編集する:
2 つの SSH サーバーを実行するオプションがあるため、iptables
SSH 構成の外部または他の手段を使用して接続を終了するだけです。
編集2:
2つのSSHインスタンスが必要なので、これをしたいと思います。 1つは入場のための公式ゲートにあり、もう1つはハニーポットとして使用されます。だからボットは彼らにパスワードを知らせますが、決してインデントしません。 (注:これは個人的なプロジェクトです。私はサーバーを使用している唯一の人であり、同僚のパスワードやその他の不快な内容を記録しません。ボットでいくつかの統計を実行したいと思います。)
「ハニーポット」サーバーはポート22でリッスンし、「公式」サーバーは344などの他のポートでリッスンします。
最初のSSHサーバー(公式サーバー)はOpenSSH_7.4p1 Debian-10+deb9u1, OpenSSL 1.0.2l 25 May 2017
Debianパッケージを使用してインストールされます。
Openssh-7.4p1
「ハニーポット」は、ログイン試行を記録するユーザー名とパスワードの修正版です。実際にPAMを有効にする必要がありますが、もう一度確認します。おそらくあなたの選択シンボル豆正しいかもしれません。
ベストアンサー1
ここで何を求めているのか分かりません。このユーザーがキーペアを使用してログインできるようにしますか? 「ルートと言ってください」と言いましたが、ルートですか? rootユーザーは常に特別なケースです。
もう一つの明らかな質問はなぜですか?誰かがシステムに侵入したくない場合は、最後にすべきことは彼らが攻撃できるAPIを提供することです。
行間を読むと、LinuxでOpensshdを使用しているように見えます(使用しているアプリケーションとOSのバージョンを明示的に明らかにすると便利です)。
それはさておき...
クライアントがサーバーに送信したユーザー名は、暗号化ネゴシエーション後に送信されます。したがって、単に接続をプロキシして再ルーティングすることはできません。
あなたができることは、sshdにPAMを使用するように指示し、特定のユーザーに提供されたパスワードに関係なくアクセスを拒否するように適切なポリシーを設定することです。これを行うにはいくつかの方法がありますが、pam_listfilesを使用すると、多くの構成をpamスタック自体から移動できることを意味します(サーバーで自分自身をロックする可能性が高いため、pam構成の変更量が減ります)。 )))。