Как разрешить логин / пароль от определенных хостов и принудительную аутентификацию на основе ключей от других?

При чтении Как ограничить указанного пользователя 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 
Другие вопросы по тегам