Чому підказка «пароль» приймає назавжди, коли я SSH на свій сервер Ubuntu 9.05?


27

Відповідь: Насправді це було зворотним дозволом DNS. Виходячи з пропозицій, наведених нижче, і цієї статті , я додав "UseDNS ні" до своєї sshd_config, перезавантажив ssh, і тепер запит на введення пароля відображається негайно.

Коли я ввожу SSH на свій сервер, мені надається стандартна підказка "login as:", а потім підказується "user @ пароль хоста:". З будь-якої причини, другий завжди потребує певного часу для відображення. Мій сервер не знаходиться під будь-яким навантаженням і зазвичай виконує команди досить швидко.

Зараз ми розмовляємо лише 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 - моє ім’я користувача. Що це все означає?


Чи знаєте ви (чи хочете навчитися), як використовувати сніфтери для пакетів, такі як Wireshark або tcpdump? Це може сказати вам, чи сервер справді весь цей час використовує сам, чи реально спілкується з клієнтом.
Ар'ян

Відповіді:


17

Чи можливо це зробити зворотний пошук DNS у вашому IP? Ви можете перевірити результати в Інтернеті, якщо клієнт використовує загальнодоступну IP-адресу або використовує щось подібне з вашого сервера:

dig -x CLIENT_IP_ADDRESS

Чи є щось у /var/log/messages?


У мене в журналі є Попередження: Попередження: Використання значення солі за замовчуванням (невизначене в ~ / .ecryptfsrc). Я розмістив весь розділ до питання для вашого аналізу.
rcampbell

@ rrc7cz, то як щодо цього зворотного DNS? Чи вирішує ваша IP-адреса щось? (Я сумніваюся, що це допоможе, оскільки найчастіше знадобиться кілька рукостискань, щоб вирішити, чи потрібно відображати підказку для імені користувача. Швидкий тест із використанням Wireshark на моєму Mac показує, що SSH ініціюється задовго до того, як запитається ім'я користувача. Але, можливо, деякі клієнти запитують це ім’я користувача, перш ніж навіть спробувати підключитися ...?)
Ар'ян

3
У мене ця зворотна проблема пошуку DNS сповільнила мої з'єднання ssh в декількох установках ... Якщо ви виявите, що це випадок, прокоментуйте рядок "UseDNS так" у / etc / ssh / sshd_config та перезавантажте sshd.
Джон Барретт

@john, ви пригадуєте, чи це сповільнилося після введення імені користувача?
Ар'ян

1
"UseDNS ні" мені теж допомогла! UpVotes для Q & A!
Грізлі

14

Ймовірно, зворотний дозвіл DNS (сервер, який намагається отримати ім'я клієнта з даними IP) потребує часу. Чи можете ви перевірити, чи / etc / ssh / sshd_config має налаштування "VerifyReverseMapping так"? Встановіть його на "VerifyReverseMapping ні" та перевірте, чи допомагає.

Редагувати: Здається, VerifyReverseMapping тепер застаріло, а useDNS - нова конфігурація в sshd_config .


Це може бути правдою, але чи є сенс тоді, що відразу з'являється запит на ім’я користувача, після чого потрібно запитати пароль на 10 секунд?
Ар'ян

Клієнт може вирішити ім'я сервера та надіслати запит, тому запит користувача відображається відразу. Але потім сервер намагається отримати ім'я клієнта (зворотне дозвіл DNS). Цей час може закінчитися, якщо введена доза не існує. Налаштування "VerifyReverseMapping" в sshd-config контролює цю перевірку.
secureBadshah

1
Це було причиною повільності в моєму випадку, тому в деяких випадках це має сенс. Зауважте, що за замовчуванням є yes, тому не просто шукайте, якщо useDNSвстановлено :)
Нанна


3

Ви завжди можете увійти з іменем користувача, щоб почати з:

ssh user@server

чи має це вплив?

Якщо ви використовуєте PuTTY, його можна налаштувати в розділі З'єднання -> Дані як ім'я користувача з автоматичним входом.


1
Незважаючи на те, що це, очевидно, не прискорює час, необхідний для появи запиту пароля, але, безумовно, прискорює загальний процес входу. Спасибі
rcampbell

3

Якщо у вас немає належних доменних імен для всього, просто щось складіть і вставте /etc/hosts. Подивіться, чи йде це швидше ... не турбуйтеся .comпросто використовуйте "bob, carol, ted, alice" або що завгодно ...

Якщо проблема - це таймаут розв’язання, це виправить.


1

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

У будь-якому /etc/ssh/ssh_configабо ~/.ssh/configвстановленому режимі, CheckHostIP noщоб вимкнути цей пошук на стороні клієнта.

Детальнішу man 5 ssh_configінформацію див.


1

Я знайшов альтернативне рішення цієї проблеми: - http://www.patrickmin.com/linux/tip.php?name=ssh_pause

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


3
Ласкаво просимо до Super User - Ми, як правило, вважаємо, що ви включаєте деталі, а не лише посилання. Ви можете редагувати свою відповідь, щоб додати більше інформації за посиланням?
Саймон Шихан

1

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

Довелося вимкнути UseDNS noі перезапустити sshd sudo systemctl restart sshd.service. Потім це працює з усіх локацій.

Я знаю, що на це питання відповіли та прийняли, але я хотів додати інформацію, оскільки мені довелося "активно" встановити її " ні" , щоб змусити її перестати використовувати dns.


0

Перевірте, чи працює nslcd (демон LDAP):

ps -ef | grep nslcd

Це може спричинити цю проблему.

Якщо він працює, зупиніть його та видаліть зі списку послуг

service nslcd stop
chkconfig nslcd off
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.