
Моя цель - по возможности подключиться через
$ ssh конечный хост
Потому что мне нужно SSH-соединение для туннелирования соединения с MySQL, которое конечная точка может создать, а хост-переход — нет.
ТЛ; ДР
Я на самом деле ищу способ, который .ssh/config
позволит мне сделать это.
ssh конечный хост
Когда за сценой это было бы сделано
ssh -t hop-host ssh end-host
Когда действие за сценой
Macbook -> hop-user@hop-host (id_rsa authentication) -> end-host-user@end-host (id_rsa authentication)
Где конечный хост, конечный хост-пользователь и файл идентификации для конечного хоста известны и определены на /home/hop-user/.ssh/config
хосте перехода.
Макбук~/.ssh/config
Host hop-host
User hop-user
Hostname valid.tested.public.ip.address.to.hop.host
IdentityFile ~/.ssh/id_rsa
Host end-host
HostName end-point-hostname-as-defined-on-hop-host
ProxyCommand ssh -W %h:%p hop-host
Хост Cent OS ~/.ssh/config
для хопа-пользователя
Host end-point-hostname-as-defined-on-hop-host
HostName valid.tested.internal.ip.address.to.end.host
User end-host-user
IdentityFile ~/.ssh/keys/endhost
Ограничение, о котором следует знать: Я не могу изменить конфигурацию на хостах перехода/конца, и у меня ничего nc
на них не установлено.
Текущая проблема с данной конфигурацией
$ ssh end-host
channel 0: открыть не удалось: административно запрещено:
открыть не удалось ssh_exchange_identification: Соединение закрыто удаленным хостом
Вещь, которая работает:
$ ssh -t hop-host ssh имя-хоста-конечной-точки-как-определено-на-хосте-хоста
правильно подскажите мне end-host-bash$ и позвольте мне делать все, что я хочу оттуда
То, что не работает или работает частично и что я пробовал
1) Изменение ~/.ssh/config
конфигурации конечного хоста Macbook для HostName и User
Host end-host
HostName valid.tested.internal.ip.address.to.end.host
User end-host-user
ProxyCommand ssh -W %h:%p hop-host
$ ssh конечный хост
[email protected]пароль:
Которого у меня, очевидно, нет. И я предполагаю, это потому, что hop-host's .ssh/config
не красный.
2) Изменение ~/.ssh/config
конфигурации конечного хоста Macbook для ProxyCommand
Host end-host
ProxyCommand ssh -t hop-host ssh end-point-hostname-as-defined-on-hop-host
$ ssh end-host
Псевдотерминал не будет выделен, так как stdin не является терминалом.
Псевдотерминал не будет выделен, так как stdin не является терминалом.
: command not found2.0-OpenSSH_6.2
ls
^CKilled by signal 2.
bash возвращает мне возможность ввода, но нет отображения моих команд.
Я понимаю, что это потому, что есть вызов -o ProxyCommand="the command in .ssh/config in the right host"
за сценой, но я могу не понимать, как это на самом деле работает.