Почему запрос пароля вводится навсегда, когда я захожу по SSH на сервер Ubuntu 9.05?

49848
rcampbell

Ответ: На самом деле он выполнял обратное DNS-разрешение. Основываясь на предложениях, приведенных ниже, и этой статье, я добавил «UseDNS no» в свой sshd_config, перезагрузил ssh, и теперь сразу появляется запрос пароля.

Когда я захожу по SSH на свой сервер, мне выдается стандартное приглашение «login as:», а затем приглашение «user @ host's password:». По какой-то причине второй показ всегда занимает некоторое время. Мой сервер не загружен и обычно выполняет команды довольно быстро.

Теперь мы говорим всего 10 секунд или около того между тем, как я нажимаю Enter для имени пользователя, и когда появляется второе приглашение, но когда вы делаете это много, это раздражает. Я подозреваю, что Ubuntu ищет мою учетную запись пользователя, но у нее <5 учетных записей на всю установку.

Обновление @Josh / var / log / messages содержит этот гем:

Oct 28 16:54:59 Athena sudo: pam_sm_authenticate: Called Oct 28 16:54:59 Athena sudo: pam_sm_authenticate: username = [msmith] Oct 28 16:54:59 Athena sudo: Warning: Using default salt value (undefined in ~/.ecryptfsrc) Oct 28 16:55:01 Athena sudo: Passphrase key already in keyring; rc = [1] Oct 28 16:55:02 Athena sudo: Passphrase key already in keyring; rc = [1] Oct 28 16:55:02 Athena sudo: There is already a key in the user session keyring for the given passphrase. 

Где msmith - мое имя пользователя. Что все это значит?

25
Вы знаете (или хотите узнать), как использовать анализаторы пакетов, такие как Wireshark или `tcpdump`? Это может сказать вам, действительно ли сервер использует все это время сам или общается с клиентом. Arjan 14 лет назад 0

9 ответов на вопрос

17
Josh

Возможно ли, что это делает обратный поиск DNS на вашем IP? Вы можете проверить результаты онлайн, если клиент использует публичный IP-адрес, или использовать что-то вроде следующего с вашего сервера:

dig -x CLIENT_IP_ADDRESS 

Есть что-нибудь /var/log/messages?

У меня есть предупреждение в журнале: Предупреждение: используется значение соли по умолчанию (не определено в ~ / .ecryptfsrc). Я разместил весь раздел на вопрос для вашего анализа. rcampbell 14 лет назад 0
@ rrc7cz, так что насчет обратного DNS? Ваш IP-адрес разрешает что-то? (Я сомневаюсь, что это поможет, так как чаще всего требуется несколько рукопожатий, чтобы решить, следует ли отображать запрос имени пользователя. Быстрый тест с использованием Wireshark на моем Mac показывает, что SSH запускается задолго до того, как запрашивается имя пользователя. Но * возможно * некоторые клиенты спрашивают это имя пользователя, прежде чем пытаться подключиться ...?) Arjan 14 лет назад 0
У меня была проблема с обратным поиском DNS, которая замедляла мои соединения ssh в нескольких установках ... Если вы обнаружите, что это так, закомментируйте строку «UseDNS yes» в / etc / ssh / sshd_config и перезапустите sshd. John Barrett 14 лет назад 3
@john, ты помнишь, замедлилось ли это * после * ввода имени пользователя? Arjan 14 лет назад 0
@Arjan Хм, хорошая мысль ... Я обычно 'ssh user @ host', поэтому запрос пароля все равно занял какое-то время. Запрашивает ли имя пользователя часть сеанса аутентификации ssh или клиент должен знать это, прежде чем пытаться установить соединение? Наблюдая за поведением клиента ssh, я подозреваю последнее. Я буду немного читать и обновлять ... John Barrett 14 лет назад 0
@ Арджан ван Бентем: Большое спасибо за помощь с этим ответом! Вы заслуживаете кредит больше, чем я! Josh 14 лет назад 0
«UseDNS no» мне тоже помогло! UpVotes за вопросы и ответы! Grizly 11 лет назад 1
13
secureBadshah

Вероятно, обратное разрешение DNS (сервер пытается получить имя клиента по IP-адресу) требует времени. Можете ли вы проверить, есть ли в / etc / ssh / sshd_config параметр «VerifyReverseMapping yes»? Установите для него «VerifyReverseMapping no» и проверьте, помогает ли.

Редактировать: Кажется, что VerifyReverseMapping устарела, и useDNS - это новая конфигурация в sshd_config .

Это может быть правдой, но имеет ли смысл тогда, что приглашение имени пользователя показывается сразу, после чего требуется 10 секунд для запроса пароля? Arjan 14 лет назад 0
Клиент может разрешить имя сервера и отправить запрос, поэтому сразу отображается приглашение пользователя. Но затем сервер пытается получить имя клиента (обратное разрешение DNS). Это может истечь, если входная доза не существует. Параметр «VerifyReverseMapping» в sshd-config контролирует эту проверку. secureBadshah 14 лет назад 0
Это было причиной медлительности в моем случае, поэтому, по крайней мере, в некоторых случаях это имеет смысл. Имейте в виду, что по умолчанию `yes`, так что не просто ищите, если установлен` useDNS` :) Nanne 12 лет назад 1
8

В вашем файле sshd_config установите GSSAPIAuthentication = нет

https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/84899

3
John T

Вы всегда можете войти в систему с именем пользователя, чтобы начать с:

ssh user@server 

это имеет какое-либо влияние?

Если вы используете PuTTY, его можно настроить в разделе Соединение -> Данные в качестве имени пользователя для автоматического входа.

Хотя это, очевидно, не ускоряет время, необходимое для появления запроса пароля, оно определенно ускоряет весь процесс входа в систему. Спасибо rcampbell 14 лет назад 1
3
DigitalRoss

Если у вас нет подходящих доменных имен для всего, просто придумайте и вставьте /etc/hosts. Посмотрите, пойдет ли это быстрее ... не беспокойтесь, .comпросто используйте «Боб, Кэрол, Тед, Алиса» или все, что вы хотите ...

Если проблема заключается в тайм-аутах решателя, тогда это будет исправлено.

1
tylerl

Помните, что клиент также выполнит проверку обратного DNS, что может занять до 30 секунд или больше, если обратное DNS-сопоставление не существует с определенными конфигурациями разрешения.

В одном /etc/ssh/ssh_configили в ~/.ssh/configнаборе, CheckHostIP noчтобы отключить этот поиск на стороне клиента.

Смотрите man 5 ssh_configдля более подробной информации.

1
Rob Belcham

Я нашел альтернативное решение этой проблемы: - http://www.patrickmin.com/linux/tip.php?name=ssh_pause

У меня возникла такая же проблема при входе в систему сборки Linux с помощью Putty под Windows. Добавление IP-адреса моего окна Windows в / etc / hosts на машине linux решило проблему.

Добро пожаловать в Super User - мы обычно предпочитаем, чтобы вы включали детали, а не только ссылки. Не могли бы вы отредактировать свой ответ, чтобы добавить больше информации по ссылке? Simon Sheehan 12 лет назад 3
1
qrikko

Просто для записи, я столкнулся с той же проблемой, когда ssh быстро шел из дома на мой домашний сервер (в основном используя его для git), но на работе потребовалось бы около 10-20 секунд, чтобы получить запрос пароля.

Я должен был выключить UseDNS noи перезапустить sshd sudo systemctl restart sshd.service. Тогда это работает из всех мест.

Я знаю, что на вопрос дан ответ и он принят, но я хотел добавить информацию, так как мне пришлось «активно» установить ее на « нет», чтобы заставить ее перестать использовать dns.

0
Anu V Das

Please check if nslcd (LDAP daemon) is running:

ps -ef | grep nslcd 

It can cause this problem.

If it is running stop it and remove from the list of services

service nslcd stop chkconfig nslcd off