Я пытаюсь удовлетворить странный случай, так что терпите меня, пожалуйста.
Я хочу использовать [не задыхайтесь] графические инструменты Windows (такие как WinSCP, PuTTY и т. Д.) С подписанными ключами OpenSSH. Эти инструменты не поддерживают подписанные ключи . Но они поддерживают множество методов «пересылки» и «прокси».
Я могу настроить их с помощью «локального прокси», который фактически выполняет команду OpenSSH с подписанными ключами к тому же серверу и устанавливает туннель: локальный порт 2222
пересылается на сервер 127.0.0.1:22
Отлично, теперь инструменты Windows могут выполнять ssh/scp
команды через уже аутентифицированный туннель ... но первое, что они пытаются сделать: открыть ssh и аутентифицировать. (и они не могут передать подписанный ключ ...).
Итак, поскольку я уже проходил аутентификацию в туннеле, могу ли я настроить ssh-сервер удаленного компьютера на НЕ НЕ запрашивать ни пароль, ни ключ, если попытка подключения выполняется через 127.0.0.1:22?
Обратите внимание, что я не говорю о сервере «прыжка» для достижения «удаленного». У меня есть только 1 «удаленный» сервер.
TL; DR:
На моем сервере Ubuntu я хочу сделать ssh user@127.0.0.1
и не запрашивать ключ или пароль, но только если запрос пришел от 127.0.0.1
Можно установить пустой пароль для пользователя и позволить аутентификацию с пустыми паролями от localhost путем добавления этих строк к вершине файла /etc/ssh/sshd_config
:
Match Address 127.0.0.*
PermitEmptyPasswords yes
Это заставляет OpenSSH не принять "ни один" аутентификация:
Доступные методы аутентификации: “gssapi с микрометром”, “hostbased”, “интерактивный с клавиатурой”, “ни один” (используемый для доступа к паролю меньше считает когда
PermitEmptyPasswords
включен), “пароль” и “открытый ключ”.
WinSCP и PuTTY не пробуют "ни один" аутентификация автоматически. Таким образом, они даже не должны просить (пустой) пароль.
Благодаря @pa4080 для предложения упрощения моего решения.
Соответствует адресу 127.0.0. * PermitEmptyPasswords yes
Размещение этого файла в верхней части моего конфигурационного файла sshd приводит к сбою моего сервера OpenSSH (Ubuntu 19.04) и невозможности его восстановления после перезагрузки. Помещение его в конец файла - это указанный метод (см. Закомментированный раздел внизу файла).
Цитата из ссылки ниже:
Если все критерии в строке Match удовлетворены, ключевые слова в следующих строках переопределяют те, которые заданы в глобальном разделе файла конфигурации, до тех пор, пока не появится другая строка Match или не закончится файл. <<
Ссылка: https://man.openbsd.org/sshd_config#AuthenticationMethods