Мне нужно запустить SSH-сервер и зарегистрировать IP-адрес и открытый ключ любого клиента, который попытки для подключения (без фактического предоставления доступа).
Вариант использования следующий: я развертываю это веб-приложение на удаленном хосте, который в процессе сборки извлекает некоторые зависимости из github / bitbucket (git использует ssh, который использует ключи). Теперь, если я хочу, чтобы этот хост-сервер имел доступ к некоторым частным репозиториям, мне нужно внести его открытый ключ в белый список, однако хост не предоставляет доступ для чтения ключа непосредственно из файловой системы. Но я могу указать ему на любой SSH-хост, и он установит соединение, предположительно выдав свой открытый ключ. Я хочу это записать.
Любые предложения приветствуются.
Если вам нужен открытый ключ для внесения в белый список, вы не можете выбрать его из неудачной попытки. Речь идет совсем не о sshd или его конфигурации, а о самом протоколе, поскольку аутентификация с открытым ключом проходит следующим образом:
authorized_keys
файл.В случае неудачных попыток это останавливается на шаге 2, предотвращая дальнейшее развитие событий. Тем не менее, весь открытый ключ никогда не отправляется на сервер, только идентификатор.
Не просто записать то, чего он даже не знает.
sshd
фактически не регистрирует публичные ключи, используемые при попытках входа в систему, успешных или иных. Самое близкое к нему - это записать отпечаток открытого ключа в LogLevel VERBOSE
.
Кроме того, поскольку это ServerFault, я вынужден упомянуть, что ваш процесс развертывания неверен. Вы должны распространять (подписанные) пакеты, которые используются менеджерами пакетов, .rpm
, .deb
и т. д. В эти пакеты вы можете включить сценарий конфигурации, если это необходимо.