У меня есть контролирующий сервер, который требует деталей соединения SSH non-sudo учетной записи пользователя каждого поля, которое это контролирует. Существует ли способ, которым я могу настроить определенную учетную запись пользователя, таким образом, что в него можно только войти от определенного IP (или еще лучше имя хоста)? Я не хочу ограничивать способность других пользователей на сервере, чтобы смочь соединиться от других адресов (иначе, я просто использовал бы брандмауэр), или используйте аутентификацию по паролю для контрольного сервиса только.
Посмотрите man sshd_config
. Существует возможность добавить AllowUsers
блок, где можно указать и пользователя и разместить как это:
AllowUsers user@host # or IP
Конечно, необходимо указать также других пользователей, от которых Вы хотите позволить вход в систему, если у Вас есть некоторые.
Как я думаю об этом еще раз, существует возможность изменить Ваш sshd_config
как это:
Match Host !hostname
DenyUsers user
Match Host hostname
AllowUsers user
Это легко заблокировало бы всех пользователей кроме от user
от hostname
и отовсюду еще это заблокировалось бы user
.
НО это не работает, из-за немногих ошибок сообщил в восходящем направлении [1] [2]. Но мы обещали его, это будет зафиксировано в следующем выпуске.
Можно использовать подстановочные знаки для строки AllowUsers на /etc/ssh/sshd_config
файл. Таким образом, было бы выполнимо добавить строку:
AllowUsers *@192.168.1.100
Или:
AllowUsers *@hostname
, Чтобы позволить всем от того доступа IP-адреса или имени хоста.
Не забудьте:
service ssh restart
, После того как Вы внесли изменения, пока Вы находитесь на версии прежде 15.04. 15,04 использования systemd теперь, также - другой механизм для управления сервисами.
Согласно страницы справочника , это должно работать:
DenyUsers user@"!host,*"
я протестировал это на Debian, и это, казалось, работало правильно.
Так как это - главный результат поиска в Google, я думаю, что люди должны также знать об установке полномочий в /etc/hosts.allow
файл (curtesy сообщения в блоге Cameron Oltmann по вопросу):
Для ограничения ssh доступа к полю Linux на основе возникновения IP-адреса отредактируйте/etc/hosts.allow:
sshd : localhost : allow sshd : 192.168.0. : allow sshd : 99.151.250.7 : allow sshd : mydomain.net : allow sshd : ALL : deny
Вышеупомянутая запись предоставит ssh доступ от localhost, 192.168.0.x подсеть, единственный IP-адрес 99.151.250.7 и mydomain.net (предполагающий, что mydomain.net имеет в распоряжении запись ptr для упрощения обратного поиска). Все другие IP-адреса будут запрещены доступа к sshd.
Примечания: Можно позволить или отклонить на основе IP-адреса, подсети или имени хоста. Список управляет в порядке большинства к наименее определенному. Файл только читается, пока согласующий отрезок длинной линии не найден, поэтому если Вы запускаете с ssdh: ВСЕ: отклоните, никакие соединения SSH не будут позволены.
И необходимо смочь использовать user@address
в этом файле, на эту ссылку lifewire.com:
Более сложные формы daemon@host и user@host объяснены в разделах по шаблонам конечной точки сервера и по клиентским поискам имени пользователя, соответственно.