На сей раз не у меня, но история настолько красивая, что хочется поделиться.
Итак: Ubuntu server. На нём sshd. Доступ по паролю прекрасно работает. В целях усиления безопасности хочется перейти на аутентификацию по ключам. Кладём на машину публичный ключ. Пробуем зайти. Облом-с, пароль хочет. Включаем в ssh-клиенте -v. Яснее не становится. Сервер предлагает аутентификацию по паролю и ключу, клиент посылает ключ, сервер его не принимает, предлагает то же самое, у клиента ключей больше нет, поэтому он спрашивает у пользователя пароль, по нему пускают.
Ощущение такое, что сервер не видит публичного ключа, или у него неправильные права. Проверяем, всё на месте, права правильные.
А вот дальше начинается мистика: если на сервер залогиниться (по паролю, естественно, по-другому не получается), то после этого начинает пускать и по ключу. И далее пока есть хоть одна открытая ssh-сессия, по ключу продолжают пускать. Закрываем все сессии — опять облом, ключ больше не работает, только пароль. Заходим по паролю, ключ начинает работать.
В логах сервера ничего подозрительного нет. Приходил пользователь, аутентифицировался по паролю. Потом по ключу. Никаких ошибок нет. Конфигурация PAM совершенно стандартная, в ней ничего не меняли.
Разгадка оказалась удивительно проста, но я, например, сам не догадался. Ваши версии?
Upd: ну, в общем, все угадали. А мне как-то не пришло в голову, что на сервере может бытьтакая засада
Оригинал этой записи в личном блоге.
Любые материалы из этого блога запрещается использовать на сайте livejournal.ru в любой форме и любом объёме.
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
no subject
И соответственно полное имя через hostname --fqdn, а оно resolver dependent?
no subject
no subject
no subject
THE FQDN
You can't change the FQDN (as returned by hostname --fqdn) or the DNS
domain name (as returned by dnsdomainname) with this command. The FQDN
of the system is the name that the resolver(3) returns for the host
name.
Technically: The FQDN is the name getaddrinfo(3) returns for the host
name returned by gethostname(2). The DNS domain name is the part after
the first dot.
Therefore it depends on the configuration (usually in /etc/host.conf)
how you can change it. Usually (if the hosts file is parsed before DNS
or NIS) you can change it in /etc/hosts.
...
net-tools 2009-09-16 HOSTNAME(1)
no subject
По поводу свежести - Lenny вышел раньше чем ман был написан "It was released on Feb 15th, 2009 as Debian GNU/Linux 5.0,
February 14th, 2009" , но там уже тоже (как я щас посмотрел) такое есть, хотя ман датируется 28 января 1996 года.