いくつかのウェブホスティングプロバイダー(BluehostとDreamhost)に聞いたところ、共有ホスティングアカウントでは、パスワードを使用してSSH経由でログインを無効にする方法はないとのことでした。つまり、SSHキーを設定した場合でも、SSHキーなしで、ホスティングのパスワードを介してログインすると、常に有効になり、キーの利点のほとんどが無効になります。
私がオンラインで見つけたものから、編集/etc/ssh/sshd_config
は、パスワードを使用してログインを無効にする方法ですが、共有ホスティングであるため、それは不可能です。
とはいえ、彼らはそれができないとは決して主張しませんでした(私は方法を見つけていませんが)、ただ彼らがそれをサポートしていないというだけです。自分で設定できるように、ユーザーごとに行う方法はありますか?そうでない場合は、SSHの動作を妨げる(技術的/設計的な)制限は何ですか?
[方法はありますか]ユーザーごとにパスワードによるSSHログインを無効にしますか?
いいえ。一般的には。
SSHの動作を妨げる(技術的/設計的)制限は何ですか?
SSHプロトコルの設計または仕様には、これを妨げる注意事項があります。
これは、SSHデーモン(またはサービス)の実装固有の制限です。
Linux(etc)プラットフォーム上の通常のsshd
プログラムは、プログラムのそのインスタンスのすべてのユーザーに適用される単一の構成ファイルを読み取るように作成されています。
たとえば、ユーザーのホームディレクトリで補足構成ファイルを検索するSSHデーモンを作成することは可能だと思います。しかし、これは行われていません(おそらく不十分な需要)
できることは、ユーザーのログインパスワードを非常に長く完全にランダムな文字列に設定することです。
シェルを使用して、攻撃者が使用すると思われる種類のSSHクライアントを使用して入力できない文字を含むパスワードを設定できる可能性があります。または、少なくとも、通常の辞書ベースのアプローチを使用して試行する可能性のあるパスワードよりもはるかに長いパスワードを設定します。