Я использую OpenSSH_5.9p1, OpenSSL 0.9.8r 8 Feb 2011
с Mac OS X Snow Leopard. У меня есть ControlMaster
функция, настроенная для поддержания постоянных соединений. У меня ~/.ssh/config
есть следующее:
Host *
ControlPath /ms/%r@%h:%p
ControlMaster auto
ControlPersist 4h
Host *.unfuddle.com
ControlMaster no
Однако из того, что я вижу, - даже когда я пытаюсь использовать SSH для хостов unfuddle.com, всегда создается главное соединение:
[andrey-mbp ~] $ ssh -v git@droolit.unfuddle.com OpenSSH_5.9p1, OpenSSL 0.9.8r 8 февраля 2011 г. debug1: чтение данных конфигурации /Users/akhkharu/.ssh/config debug1: /Users/akhkharu/.ssh/config строка 1: применение параметров для * debug1: /Users/akhkharu/.ssh/config строка 6: применение параметров для * .unfuddle.com debug1: чтение данных конфигурации /usr/local/Cellar/openssh/5.9p1/etc/ssh_config debug1: auto-mux: пробует существующий мастер debug1: управляющий сокет "/ms/git@droolit.unfuddle.com:22" не существует debug1: подключение к порту 22 droolit.unfuddle.com [174.129.5.196]. debug1: соединение установлено. debug1: файл идентификации /Users/akhkharu/.ssh/id_rsa тип 1 debug1: файл идентификации /Users/akhkharu/.ssh/id_rsa-cert тип -1 debug1: файл идентификации /Users/akhkharu/.ssh/id_dsa тип 2 debug1: файл идентификации /Users/akhkharu/.ssh/id_dsa-cert тип -1 debug1: файл идентификации /Users/akhkharu/.ssh/id_ecdsa тип -1 debug1: файл идентификации /Users/akhkharu/.ssh/id_ecdsa-cert тип -1 debug1: удаленный протокол версии 2.0, удаленная версия программного обеспечения OpenSSH_5.8 debug1: match: OpenSSH_5.8 pat OpenSSH * debug1: включение режима совместимости для протокола 2.0 debug1: строка локальной версии SSH-2.0-OpenSSH_5.9 debug1: отправлено сообщение SSH2_MSG_KEXINIT debug1: SSH2_MSG_KEXINIT получено debug1: kex: сервер-> клиент aes128-ctr hmac-md5 нет debug1: kex: клиент-> сервер aes128-ctr hmac-md5 debug1: отправка SSH2_MSG_KEX_ECDH_INIT debug1: ожидается SSH2_MSG_KEX_ECDH_REPLY debug1: ключ хоста сервера: RSA a6: 74: 33: 36: 95: 31: 6e: a6: d7: 71: 87: b8: 3c: 38: e2: 60 debug1: Хост droolit.unfuddle.com известен и соответствует ключу хоста RSA. debug1: найден ключ в /Users/akhkharu/.ssh/known_hosts:390 debug1: ssh_rsa_verify: подпись верна debug1: отправлено сообщение SSH2_MSG_NEWKEYS debug1: ожидается SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS получено debug1: роуминг не разрешен сервером debug1: SSH2_MSG_SERVICE_REQUEST отправлено debug1: SSH2_MSG_SERVICE_ACCEPT получено debug1: аутентификации, которые могут продолжаться: publickey debug1: следующий метод аутентификации: publickey debug1: предложение открытого ключа RSA: /Users/akhkharu/.ssh/id_rsa debug1: сервер принимает ключ: pkalg ssh-rsa blen 277 debug1: аутентификация прошла успешно (publickey). Аутентифицирован на droolit.unfuddle.com ([174.129.5.196]: 22). debug1: настройка мультиплексного мастер-сокета debug1: канал 0: новый [/ms/git@droolit.unfuddle.com:22] debug1: control_persist_detach: фоновый мастер-процесс debug1: переход в фоновый режим debug1: вход в интерактивный сеанс. debug1: мультиплексирование управляющего соединения debug1: канал 1: новый [управление мультиплексором] debug1: канал 2: новый [клиент-сессия] debug1: Remote: принудительная команда. debug1: Remote: переадресация портов отключена. debug1: Remote: пересылка X11 отключена. debug1: Remote: переадресация агента отключена. debug1: Remote: распределение Pty отключено. debug1: Remote: принудительная команда. debug1: Remote: переадресация портов отключена. debug1: Remote: пересылка X11 отключена. debug1: Remote: переадресация агента отключена. debug1: Remote: распределение Pty отключено. debug1: mux_client_request_session: основной идентификатор сеанса: 2 Запрос на выделение PTY не выполнен Нужно SSH_ORIGINAL_COMMAND debug1: client_input_channel_req: канал 2 rtype ответ о состоянии выхода 0 debug1: client_input_channel_req: канал 2 rtype eow@openssh.com ответ 0 debug1: канал 2: свободный: клиент-сессия, nchannels 3 debug1: канал 1: свободный: управление мультиплексором, nchannels 2 Совместное подключение к droolit.unfuddle.com закрыто.
[andrey-mbp ~] $ ll / мс / всего 0 srw ------- 1 akhkharu admin 0B 17 июля 11:55 git@droolit.unfuddle.com: 22
Спасибо,
Андрей.
Как описано в ответе на мой похожий вопрос о SuperUser , вы можете использовать синтаксис «взрыва» для исключения определенных хостов из исходного
Host *
раздела, например:В моей ситуации я обнаружил, что порядок
Host
разделов при использовании aHost *
кажется несоответствующим, но описанный выше метод всегда работает.источник
Для меня это работает , когда я дополнительно установить
ControlPath
вnone
пределахhost
строфы.Можешь попробовать:
Тогда сессия управления не будет сгенерирована.
источник
Host *
раздел в конец файла, и это сработало.