Не удается заставить SSH ProxyCommand работать (ssh_exchange_identification: соединение закрыто удаленным хостом)

Я безуспешно пытаюсь использовать SSH ProxyCommand для подключения к серверу через окно перехода. Моя конфигурация ниже, я запускаю эту команду:

ssh 10.0.2.54 -F ssh.config

Host x.x.x.x
    User                   ec2-user
    HostName               x.x.x.x
    ProxyCommand           none
    IdentityFile           /Users/me/.ssh/keys.pem
    BatchMode              yes
    PasswordAuthentication no

Host *
    ServerAliveInterval    60
    TCPKeepAlive           yes
    ProxyCommand           ssh -W %h:%p -q ec2-user@x.x.x.x
    ControlMaster          auto
    ControlPersist         8h
    User                   ec2-user
    IdentityFile           /Users/me/.ssh/keys.pem

Результат прост:

ssh_exchange_identification: Connection closed by remote host

Как я могу заставить это работать / устранить проблему?

Спасибо,

2
задан 28 January 2016 в 13:25
1 ответ

ControlPersist в сочетании с ProxyCommand не действует, и вы пропускаете опцию ControlPath. Но здесь это не проблема.

Во-первых, если вы используете нестандартный конфигурационный файл и хотите, чтобы он использовался даже командой прокси, вам нужно указать его даже там. Опция -q делает соединение тихим, так что вы понятия не имеете, что происходит под капотом команды proxy. -q опция DEBUG3 весьма полезна.

Эта строка:

ProxyCommand           ssh -W %h:%p -q ec2-user@x.x.x.x

должна быть (и вам не нужно имя пользователя, так как оно уже указано выше):

ProxyCommand           ssh -W %h:%p -F ssh.config x.x.x.x

У вас также неверный порядок параметров в команде:

ssh 10.0.2.54 -F ssh.config -vv

должен быть:

ssh -F ssh.config 10.0.2.54

как вы можете прочитать со страницы ручного управления. И -vv не нужно, если Вы используете опцию LogLevel.

Тогда она должна работать на Вас (по крайней мере, на меня, иначе исследуйте лог).

.
2
ответ дан 3 December 2019 в 11:33

Теги

Похожие вопросы