Этот конкретный ответ на подобный вопрос на Переполнении стека, кажется, был очень хорошо продуман. Это включает логику для контакта с файлами без точек в них ("somefile") и файлами с несколькими точками в них ("somefile.tar.gz").
Denyhosts только блоки привел логины к сбою (после того, как предопределенное количество). Это не делает, о котором я знаю, заблаговременно люди блока.
Вы не можете одновременно блокировать доступ на более низком уровне (IP) и потребовать от протокола более высокого уровня (SSH) для переопределения блока – просто, потому что более высокий уровень никогда не достигается (в случае блока).
Можно ограничить хосты входа в систему к пользователям в целом и позволить всего одному пользователю входить в систему отовсюду. Но это не было бы динамическим решением.
Можно также работать два sshd
экземпляры, одно использование denyhosts, при этом другой - применим этим пользователем только. К сожалению, это, кажется, не возможно отключить libwrap в конфигурации, таким образом, необходимо было бы, вероятно, скомпилировать sshd
с соответствующими опциями или выполненный второй экземпляр в VM или контейнере.
Я думаю, что нашел проблему. Мой/etc/hosts.deny содержит эти две строки:
ALL: PARANOID
sshd: ALL
Это похоже на проблему?
Вот часть моего/etc/hosts.deny:
# /etc/hosts.deny: list of hosts that are _not_ allowed to access the system.
#
# Example: ALL: some.host.name, .some.domain
# ALL EXCEPT in.fingerd: other.host.name, .other.domain
#
# The PARANOID wildcard matches any host whose name does not match its
# address.
# You may wish to enable this to ensure any programs that don't
# validate looked up hostnames still leave understandable logs. In past
# versions of Debian this has been the default.
ALL: PARANOID
sshd: ALL
ALL: 200.125.165.10
ALL: 203.144.65.53
ALL: 85.31.203.35
...