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

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

ssh 10.0.2.54 -F ssh.config -vv

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 [email protected]
    ControlMaster          auto
    ControlPersist         8h
    User                   ec2-user
    IdentityFile           /Users/me/.ssh/keys.pem

Результат:

OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data ssh.config
debug1: ssh.config line 9: Applying options for *
debug1: auto-mux: Trying existing master
debug1: Control socket "/Users/me/.ssh/[email protected]:22" does not exist
debug2: ssh_connect: needpriv 0
debug1: Executing proxy command: exec ssh -W 10.0.2.54:22 -q [email protected]
debug1: identity file /Users/me/.ssh/keys.pem type -1
debug1: identity file /Users/me/.ssh/keys.pem-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.2
debug1: permanently_drop_suid: 501

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

Спасибо,


person rix    schedule 28.01.2016    source источник


Ответы (1)


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

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

Эта строка:

ProxyCommand           ssh -W %h:%p -q [email protected]

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

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.

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

person Jakuje    schedule 28.01.2016