Tuesday, January 3rd, 2012 12:22 pm

На сей раз не у меня, но история настолько красивая, что хочется поделиться.

Итак: Ubuntu server. На нём sshd. Доступ по паролю прекрасно работает. В целях усиления безопасности хочется перейти на аутентификацию по ключам. Кладём на машину публичный ключ. Пробуем зайти. Облом-с, пароль хочет. Включаем в ssh-клиенте -v. Яснее не становится. Сервер предлагает аутентификацию по паролю и ключу, клиент посылает ключ, сервер его не принимает, предлагает то же самое, у клиента ключей больше нет, поэтому он спрашивает у пользователя пароль, по нему пускают.

Ощущение такое, что сервер не видит публичного ключа, или у него неправильные права. Проверяем, всё на месте, права правильные.

А вот дальше начинается мистика: если на сервер залогиниться (по паролю, естественно, по-другому не получается), то после этого начинает пускать и по ключу. И далее пока есть хоть одна открытая ssh-сессия, по ключу продолжают пускать. Закрываем все сессии — опять облом, ключ больше не работает, только пароль. Заходим по паролю, ключ начинает работать.

В логах сервера ничего подозрительного нет. Приходил пользователь, аутентифицировался по паролю. Потом по ключу. Никаких ошибок нет. Конфигурация PAM совершенно стандартная, в ней ничего не меняли.

Разгадка оказалась удивительно проста, но я, например, сам не догадался. Ваши версии?

Upd: ну, в общем, все угадали. А мне как-то не пришло в голову, что на сервере может бытьтакая засада

Оригинал этой записи в личном блоге.
Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме.

Tuesday, January 3rd, 2012 12:45 pm (UTC)
Зашифрованный или неправильно монтирующийся homedir. Проверяем: пишем публичный ключ человеку прямо в /etc/ssh/sshd_config
Tuesday, January 3rd, 2012 12:57 pm (UTC)
Шифрованный $HOME?
Tuesday, January 3rd, 2012 01:57 pm (UTC)
encrypted home ?
Tuesday, January 3rd, 2012 03:05 pm (UTC)
Наверное домашний каталог при логине монтируется/map'ится ?
Tuesday, January 3rd, 2012 05:25 pm (UTC)
Шифрование домашнего каталога выключи :)
Tuesday, January 3rd, 2012 07:22 pm (UTC)
шифрованные хоумдиры?
Wednesday, January 4th, 2012 02:46 am (UTC)
Публичные ключи пусть живут в /etc/sshd/keys/%u
Thursday, January 5th, 2012 04:11 am (UTC)
Я вот не догадался. И вообще как-то это странно что хомяк разворачивать при логине...странно тем что, то он есть, а то его нет получается..
Thursday, January 5th, 2012 04:21 am (UTC)
И вот кстати, чтоб два раза не вставать, знамо ли тебе что /etc/hostname в дебиане теперь должен "This file should contain only the system hostname, not a fully qualified domain name." - http://www.debian.org/doc/manuals/debian-reference/ch03.en.html#_the_hostname
И соответственно полное имя через hostname --fqdn, а оно resolver dependent?
Thursday, January 5th, 2012 05:35 am (UTC)
Такие же грабли были много лет назад с монтированием /home по nfs automount-ом. O шифровании тогда, понятно, не слышали.
Thursday, January 5th, 2012 05:48 pm (UTC)
Этот ман я читал, да. Я правда не понимаю логики с отсутствием fqdn в hostname и очень мне не нравится что используется resolver..

По поводу свежести - Lenny вышел раньше чем ман был написан "It was released on Feb 15th, 2009 as Debian GNU/Linux 5.0,
February 14th, 2009" , но там уже тоже (как я щас посмотрел) такое есть, хотя ман датируется 28 января 1996 года.