На сей раз не у меня, но история настолько красивая, что хочется поделиться.
Итак: Ubuntu server. На нём sshd. Доступ по паролю прекрасно работает. В целях усиления безопасности хочется перейти на аутентификацию по ключам. Кладём на машину публичный ключ. Пробуем зайти. Облом-с, пароль хочет. Включаем в ssh-клиенте -v. Яснее не становится. Сервер предлагает аутентификацию по паролю и ключу, клиент посылает ключ, сервер его не принимает, предлагает то же самое, у клиента ключей больше нет, поэтому он спрашивает у пользователя пароль, по нему пускают.
Ощущение такое, что сервер не видит публичного ключа, или у него неправильные права. Проверяем, всё на месте, права правильные.
А вот дальше начинается мистика: если на сервер залогиниться (по паролю, естественно, по-другому не получается), то после этого начинает пускать и по ключу. И далее пока есть хоть одна открытая ssh-сессия, по ключу продолжают пускать. Закрываем все сессии — опять облом, ключ больше не работает, только пароль. Заходим по паролю, ключ начинает работать.
В логах сервера ничего подозрительного нет. Приходил пользователь, аутентифицировался по паролю. Потом по ключу. Никаких ошибок нет. Конфигурация PAM совершенно стандартная, в ней ничего не меняли.
Разгадка оказалась удивительно проста, но я, например, сам не догадался. Ваши версии?
Upd: ну, в общем, все угадали. А мне как-то не пришло в голову, что на сервере может бытьтакая засада
Оригинал этой записи в личном блоге.
Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме.