Все пользователи должны только войти в ключи использования только кроме John, он может войти в ключи использования и если он использует локальную сеть 192.168.1.x
затем он мог ssh использование пароля, но он не может сделать входа в систему с помощью пароля от случайного дюйм/с.
Я не знаю, как записать правило для Джона. Сделайте я делаю AllowUsers john@192.168.1.x
? Но как отклонить John от другого дюйм/с? Что происходит, если John соединил использование другого порта?
Что лучший способ состоит в том, чтобы сделать это?
Необходимо смочь сделать это с a Match
директива.
Перед запуском удостоверьтесь, что у Вас есть по крайней мере одна учетная запись с рабочим основанным на ключе доступом к серверу (или физическим доступом).
Затем отредактируйте сервер /etc/ssh/sshd_config
файл, добавляя Ваш блок соответствия в конце, например.
Match User john Address 192.168.1.0/24
PasswordAuthentication yes
Обратите внимание, что это выражает два условия, User john
и Address 192.168.1.0/24
, оба из которых должны быть удовлетворены для PasswordAuthentication yes
быть примененным. 0/24
нотация CIDR для любого адреса в 192.168.1.x подсеть.
Теперь можно отключить аутентификацию по паролю для других адресных пользователем комбинаций в основной части конфигурации, найдя начало раздела:
# 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 steeldriver@192.168.1.11
который должен перестать работать с сообщением как
Permission denied (publickey).
тогда как john
должен быть запрошен пароль:
$ ssh -o PreferredAuthentications=password -o PubkeyAuthentication=no john@192.168.1.11
john@192.168.1.11's password:
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-116-generic x86_64)
Если Вы хотите, чтобы аутентификация по паролю была предпочтительным механизмом для john
когда в локальной сети, Вы, возможно, должны указать это в соответствующей клиентской конфигурации т.е. ~/.ssh/ssh_config