Я безуспешно пытаюсь использовать 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
Как я могу заставить это работать / устранить проблему?
Спасибо,
ControlPersist
в комбинации с ProxyCommand
неэффективно, и вы пропустите ControlPath
вариант. Но здесь это не проблема.
Прежде всего, если вы используете нестандартный файл конфигурации и хотите, чтобы он использовался даже командой прокси, вам нужно указать его даже там. В -q
опция делает соединение тихим, поэтому вы не знаете, что происходит под капотом команды прокси. LogLevel 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
вариант.
Тогда это должно сработать для вас (по крайней мере, для меня, в противном случае исследуйте журнал).