Конфигурация ssh от Ubuntu 12.04 не работает 14.04.4

Я устанавливаю новый сервер Ubuntu 14.04.4 для замены машины 12.04, но у нового сервера возникают проблемы со старой конфигурацией ssh. Я могу ssh без config, и могу даже ssh через сервер bastion без проблем из командной строки. Например,

ssh -o ProxyCommand="ssh -W %h:%p bastion.my.company.com" lab123.my.company.com 

Но если я /home/myname/.ssh/config файл /home/myname/.ssh/config со следующими настройками, у меня возникают проблемы.

 ServerAliveInterval 150 ServerAliveCountMax 6 ControlMaster auto ControlPath /tmp/ssh_%h_%p_%r Host *.my.company.com User myname IdentityFile /home/myname/.ssh/mykey.pem ProxyCommand ssh bastion -W %h:%p ForwardAgent yes Host bastion Hostname bastion.my.company.com User myname IdentityFile /home/myname/.ssh/mykey.pem 

Когда я пытаюсь использовать ssh с приведенной выше конфигурацией, я получаю сотни процессов ssh, например:

 myname 29855 29854 0 12:24 pts/6 00:00:00 ssh bastion -W bastion.my.company.com:22 myname 29856 29855 0 12:24 pts/6 00:00:00 ssh bastion -W bastion.my.company.com:22 myname 29857 29856 0 12:24 pts/6 00:00:00 ssh bastion -W bastion.my.company.com:22 myname 29858 29857 0 12:24 pts/6 00:00:00 ssh bastion -W bastion.my.company.com:22 

ssh просто зависает, пока я не нажму Ctrl + C , а затем все процессы ssh умирают.

След последних нескольких строк каждого процесса выглядит так:

 .... write(4, "SSH-2.0-OpenSSH_6.6.1p1 Ubuntu-2"..., 43) = 43 read(5, 0xbfe08efc, 1) = ? ERESTARTSYS (To be restarted if SA_RESTART is set) --- SIGINT {si_signo=SIGINT, si_code=SI_KERNEL} --- +++ killed by SIGINT +++ 

Далее посмотрите на трассировку, в которой описаны дескрипторы файлов:

 ... socket(PF_LOCAL, SOCK_STREAM, 0) = 3 connect(3, {sa_family=AF_LOCAL, sun_path="/tmp/ssh_bastion.my.company.com_22_myname"}, 57) = -1 ENOENT (No such file or directory) close(3) = 0 pipe([3, 4]) = 0 pipe([5, 6]) = 0 .. 

Кажется странным, что в / tmp нет файла сокета, и в трассировке нет привязки.

  • Беспроводной WAP-роуминг на сервере Ubuntu
  • Как установить g ++ 4.8 для установки по умолчанию после установки?
  • Как установить выходной звук HDMI по умолчанию на Ubuntu 16.04
  • Как отображать время sadf в формате epoch
  • Определите, является ли видеокарта новой
  • скрипт init.d не запускается при загрузке
  • Avconv Ошибка при попытке сохранить моментальный снимок обновления потока IP-камеры
  • "Service {FOO} start" vs. "/etc/init.d/{FOO} start"?
  • 2 Solutions collect form web for “Конфигурация ssh от Ubuntu 12.04 не работает 14.04.4”

    Решение было предоставлено в комментариях steeldriver, которого предположил, что я исключаю bastion.my.company.com из имени подстановочного знака.

    Например,

     ServerAliveInterval 150 ServerAliveCountMax 6 ControlMaster auto ControlPath /tmp/ssh_%h_%p_%r Host *.my.company.com !bastion.my.company.com User myname IdentityFile /home/myname/.ssh/mykey.pem ProxyCommand ssh bastion -W %h:%p ForwardAgent yes Host bastion Hostname bastion.my.company.com User myname IdentityFile /home/myname/.ssh/mykey.pem 

    ControlPath /tmp/ssh_%h_%p_%r

    Это довольно плохая идея поместить ваши сокеты Control в «общедоступный» /tmp . Он должен быть в некотором безопасном каталоге, где другие пользователи не могут получить доступ.

    Поведение похоже на то, что было изменено значение по умолчанию для CanonicalizeHostname . Что этот параметр по умолчанию используется в вашей системе? Попробуйте отключить его: CanonicalizeHostname no .

    Установка LogLevel DEBUG3 также неплохо начинается с проблем отладки с помощью ssh . Можете ли вы установить этот параметр в своей конфигурации и опубликовать журналы?

    Interesting Posts

    Локальная установка .rpms с использованием YUM

    Каков правильный способ автоматизации SSH / локальной команды?

    (Shell Script) Переменная не проходит правильно при извлечении значения из файла?

    Как отключить vimplugins при вызове команды vimdiff

    Почему суперпользователь отключен в iOS и Android

    Как удалить файл, имя которого начинается с «-» (дефис aka тире или минус)?

    Переименуйте кучу файлов с определенным шаблоном

    Почему большинство linux-дистрибутивов по умолчанию gnome?

    Печать текста между двумя шаблонами, не содержащими конкретного слова

    NetworkManager: установить текущее соединение устройства как измеренное

    Проверьте, открыт ли файл другим процессом

    изменение шаблона текстового файла

    Самый дешевый способ найти самый старый файл (рекурсивно) из каталога с большой нагрузкой

    Доступ к хранилищу iphone в качестве устройства / раздела

    Количество файлов в каталоге

    Linux и Unix - лучшая ОС в мире.