すべてのユーザーは、John以外のキーのみを使用してログインする必要があります。キーを使用してログインでき、ローカルネットワーク192.168.1.x
を使用している場合、パスワードを使用してsshできますが、ランダムIPのパスワードを使用してログインすることはできません。
Johnのルールの書き方がわかりません。 AllowUsers [email protected]
を実行しますか?しかし、ジョンを異なるIPから拒否する方法は?ジョンが別のポートを使用して接続するとどうなりますか?
それを行う最良の方法は何ですか?
Match
ディレクティブでこれを行うことができるはずです。
開始する前に、サーバー(または物理アクセス)への作業キーベースのアクセスを持つアカウントが少なくとも1つあることを確認してください。
次に、サーバーの/etc/ssh/sshd_config
ファイルを編集して、最後にマッチブロックを追加します。
Match User john Address 192.168.1.0/24
PasswordAuthentication yes
これは、User john
とAddress 192.168.1.0/24
の2つの条件を表すことに注意してください。 both は、PasswordAuthentication yes
を適用するために満たす必要があります。 0/24
は、192.168.1.xサブネット内の任意のアドレスの CIDR表記 です。
これで、構成の本体で他のユーザーとアドレスの組み合わせのパスワード認証を無効にして、次のセクションを見つけることができます。
# Change to no to disable tunnelled clear text passwords
およびデフォルトの変更
#PasswordAuthentication yes
に
PasswordAuthentication no
最後に、サービスを再起動します-systemd
ベースのinitシステムでは、次を使用してそれを行うことができます
Sudo systemctl restart ssh.service
一致しないユーザーがパスワードを使用して認証できなくなったことをテストするには、クライアントに強制的に試行させます。
$ ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no [email protected]
次のようなメッセージで失敗するはずです
Permission denied (publickey).
一方、john
はパスワードの入力を求められます。
$ ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no [email protected]
[email protected]'s password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-116-generic x86_64)
パスワード認証をローカルネットワーク上でjohn
のpreferredメカニズムにしたい場合は、対応するクライアント構成で指定する必要があります。つまり、~/.ssh/ssh_config