Как разрешить логин / пароль от определенных хостов и принудительную аутентификацию на основе ключей от других?
При чтении Как ограничить указанного пользователя SSH подключением только с одного IP-адреса или имени хоста? Я подошел к решению проблемы с конкретными логинами, но это не относится к моему делу.
Мне нужно убедиться, что SSH-соединение с моим хостом происходит от чего-то еще 192.168.10.0/24
аутентифицируется с помощью ключа. Соединения из 192.168.10.0/24
может использовать оба (или только на основе пароля, если это проблема).
ssh_config
Страница man упоминает в разделе УЗОРЫ, что
следующая запись (в
authorized_keys
) может быть использован:from="!*.dialup.example.com,*.example.com"
Это позволило бы найти решение, прямо противоположное моему: некоторые источники не могут использовать ключи, но я не вижу, как превратить его в мою нужду.
Как заставить использование ключей SSH, когда клиент не подключается с определенных IP-адресов?
1 ответ
Согласно справочной странице вы можете разделить /etc/sshd_config
в разделах, которые соответствуют хостам, первый раздел, который соответствует используемому:
Таким образом, вы могли бы иметь:
# everything for your local hosts
Host 192.168.*.*
[...]
RSAAuthentication yes
PasswordAuthentication yes
[...]
# Everything for other hosts
Host *
[...]
RSAAuthentication yes
PasswordAuthentication no
[...]
Чтобы избежать всего этого дублирования, кажется, что есть блоки, которые действительны для определенных хостов:
Host *
[...]
RSAAuthentication yes
[...]
Match 192.168.*.*
PasswordAuthentication yes
Match all