Що може означати "Роумінг, заборонений сервером" клієнта ssh?


25

Мені не вдалося підключитися до екземпляра сервера SSH, і багатослівний вихід містить debug1: Roaming not allowed by server. Виникають наступні передбачувані проблеми, які можуть уникнути:

  • Роумінг означає доступ до послуг із різних типів мереж. Я не можу зрозуміти, що це може означати у контексті багатослівного виходу sshклієнта 6.6.1, який працює на Ubuntu 14.04.
  • Незрозуміло, чи це помилка чи ні, і чи є вона причиною збою входу в систему, чи ні (я не хочу занурюватися в цю помилку підключення, хоча жодне вихідне повідомлення sshне робить BTW -> більше проблем і час талію - вас попередили!)
  • Я запитав site:www.openssh.org roamingу google з порожнім результатом, а впаковки не містять цього терміна. Дурницею користуватися, навіть якщо це було задокументовано через його неоднозначність!

Що може означати повідомлення? Як я міг би використати його для налагодження великого набору інших дуже неоднозначних, неінтуїтивних та непосидних помилок та інших повідомлень SSH?

Відповіді:


22

Це насправді не повідомлення про помилку. Це лише повідомлення про налагодження, яке повідомляє вам, що сервер не приймає роумінгові з'єднання.

Роумінг, очевидно, експериментальна функція, яка була додана до OpenSSH ще в 2009 році. Метою функції є дозволити ssh-клієнту відключитися від сеансу на сервері, а потім відновити сеанс з іншого місця. Дивіться тут дещо обговорення з цього приводу. Гуглінг ssh, роумінг та "Martin Forssén" відкриють інші сторінки. Це не схоже на те, що він активно розвивається. Я підозрюю, що розробники SSH ніколи цього не документально підтверджували, оскільки це експериментально і, можливо, не закінчено.

Перевіряючи вихідний код OpenSSH, існує недокументований варіант на стороні клієнта, UseRoamingякий можна встановити на "так" або "ні". Додавання рядка "UseRoaming ні" до конфігурації клієнта (як правило, ваш .ssh/configфайл) повинно придушити повідомлення про налагодження.

Мені не було очевидно, чому HostbasedAuthenticationналаштування на стороні сервера буде контролювати, приймає він сервер чи не в роумінгу.

Оновлення: Підтримка роумінгу для клієнтів, очевидно, є предметом звіту про виявлення вразливості комп'ютера, CVE-2016-0777 . Версії OpenSSH від 5.4 до 7.1p1 вразливі. Користувачі повинні оновити до OpenSSH 7.1p2 або новішої версії. Користувачі, які не можуть оновити, повинні відключити роумінг у клієнті, додавши "UseRoaming ні" до їх клієнтської конфігурації ssh. Дивіться наступне:


7
Ну, зараз рекомендується встановити його на ні. mail-archive.com/misc@openbsd.org/msg144351.html
nikeee

1
@nikeee: ... і це застережлива історія про те, щоб не доставляти "нешкідливі" непрацюючі заглушки. (Зверніть увагу, що вам потрібно встановити це noв налаштуваннях клієнта , а не на сервері)
Piskvor

@Piskvor, але є чимало книг, присвячених / веб-сайтів, які пропонують це зробити. Чи можуть вони помилятися? Ой.
Флоріан Хейгл

найкраще пояснення цього конфігурації в мережі.
nils petersohn

4

У журналі змін від openssh 5.3 на CentOS6 є примітка:

27.06.2009
     Додати опцію клієнта UseRoaming. Це ще нічого не робить, але буде
     контролює, чи намагається клієнт використовувати роумінг, якщо його включено в
     сервер. Від Мартіна Форссена.

3

@ ILMostro_7 chmod 600 дозволених_кіней працювали мені добре.

На користь для всіх, хто приїжджає сюди, googling "Роумінг не заборонено сервером" та використовує клієнт Linux (Ubuntu), ви можете виправити це попередження, а потім побачити: -

Agent admitted failure to sign using the key

Ліки від цього наведено на https://help.github.com/articles/error-agent-admitted-failure-to-sign/

    # start the ssh-agent in the background
    $ eval "$(ssh-agent -s)"
    # Agent pid 59566 (displays process id)
    $ ssh-add
    # Enter passphrase for /home/you/.ssh/id_rsa: [tippy tap]
    # Identity added: /home/you/.ssh/id_rsa (/home/you/.ssh/id_rsa)

'#' = коментар. ви = ваше-ім’я користувача. [наконечник] = humo [u] r? = натисніть клавішу Enter.

Я сподіваюся, що хтось допомагає настільки, наскільки це питання та допомога мені вже допомогли.


2

Це повідомлення про помилку може з’являтися, якщо /etc/ssh/sshd_configйого не HostbasedAuthenticationвстановлено yesна сервері.

Я поняття не маю, чому.

Іншим питанням може бути:

Перевірте дозволи в каталозі $ USER / .ssh, який повинен належати користувачеві і бути chmod 700.


700? Навіщо тобі потрібен executeбіт на файлі ключів?
ILMostro_7

Звідки цитата? Будь ласка, додайте посилання.
Карл Ріхтер

ILMostro_7 не в файлі, він знаходиться в каталозі, і щоб користувач міг створювати файли в каталозі, прапор виконання повинен бути встановлений
IceyEC

@IceyEC Відповідь пропонує 700 для авторизованих_кілів .
mdrozdziel

1
Повинно бути chmod 400. Не маю ідеї, чому я хотів би, щоб цей файл був виконуваним; і доступ до запису також небажаний 99,999% часу. sshdперевіряє, що в .sshпапці користувача немає доступу для групи та інших, а також для .ssh/authorized_keys. Отже, хімічні речовини у відповіді можуть працювати, але вони надмірно широкі.
Пісквор
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.