24

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

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

Что может означать это сообщение? Как я могу использовать его для отладки большого набора других весьма неоднозначных, неинтуитивных и бесполезных ошибок и других сообщений SSH?

4 ответа4

21

Это не совсем сообщение об ошибке. Это просто отладочное сообщение о том, что сервер не принимает роуминговые соединения.

Роуминг, по-видимому, является экспериментальной функцией, добавленной в OpenSSH в 2009 году или около того. Назначение этой функции - позволить клиенту ssh отключиться от сеанса на сервере, а затем возобновить сеанс из другого места. Смотрите здесь для обсуждения этого вопроса. Погуглив ssh, роуминг, и "Martin Forssén" перевернут другие страницы. Не похоже, что он активно развивается. Я подозреваю, что разработчики SSH никогда не документировали это, потому что это экспериментально и возможно не закончено.

Из проверки исходного кода OpenSSH, есть недокументированный вариант на стороне клиента UseRoaming который может быть установлен на да или нет. Добавление строки "UseRoaming no" в конфигурацию вашего клиента (обычно ваш файл .ssh/config ) должно подавить сообщение об отладке.

Для меня не было очевидным, почему параметр HostbasedAuthentication стороне сервера будет контролировать, принимает ли сервер роуминговые соединения или нет.

Обновление. Поддержка роуминга клиента, по-видимому, является темой отчета об уязвимости компьютера, CVE-2016-0777. OpenSSH версии с 5.4 по 7.1p1 уязвимы. Пользователи должны обновить до OpenSSH 7.1p2 или новее. Пользователи, которые не могут выполнить обновление, должны отключить роуминг на клиенте, добавив "UseRoaming no" в свою конфигурацию клиента ssh. Смотрите следующее:

4

В журнале изменений из openssh 5.3 на CentOS6 есть примечание:

2009/06/27
     Add client option UseRoaming. It doesn't do anything yet but will
     control whether the client tries to use roaming if enabled on the
     server. From Martin Forssen.
3

@ ILMostro_7 chmod 600 authorized_keys работал нормально для меня.

В интересах всех, кто прибывает сюда, прибегая к помощи «Роуминга, не разрешенного сервером» и использующего клиент 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)

'#' = комментарий. Вы = ваше имя пользователя. [быстрое нажатие] = хумо [и] р? = нажмите клавишу ввода.

Я надеюсь, что это поможет кому-то так же, как этот Q & A уже помог мне.

2

Это сообщение об ошибке может отображаться, когда /etc/ssh/sshd_config не имеет HostbasedAuthentication на сервере значение yes .

Понятия не имею почему.

Другая проблема может быть:

Проверьте разрешения в каталоге $ USER/.ssh, который должен принадлежать пользователю и быть chmod 700. Файл author_keys также должен быть chmod 700 и принадлежать пользователю

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .