У меня проблемы с туннелированием через сервер ssh1. Это на компьютере клиента, и нет, они не будут обновляться до ssh2.
Немного предыстории: я могу успешно туннелировать через шлюз клиента
localhost -> gateway.customer.example.com -> srv.customer.internal
используя эту конфигурацию
Host gateway
Hostname gateway.customer.example.com
IdentityFile ~/.ssh/mykey
...
Host srv-tunnel
ProxyCommand ssh gateway -W srv.customer.internal:22
IdentityFile ~/.ssh/mykey
...
а потом просто
$ ssh srv-tunnel
который отлично работает и устанавливает туннель автоматически, используя ~/.ssh/mykey
.
Я попытался использовать подобный конфиг для этого туннеля с несколькими переходами:
localhost -> gateway.customer.example.com
|
v
onemoregateway.customer.internal -> srv2.customer.internal
но в этот раз на onemoregateway
работает ssh 1, а nc
недоступен. Я могу подключиться по ssh к onemoregateway
и приглашение подсказывает мне, что The only permitted commands are ssh and scp.
Когда я пытаюсь установить соединение для пересылки, как описано выше, ssh завершает работу с ошибкой stdio forwarding require Protocol 2
.
Тем не менее, я не могу ssh напрямую с onemoregateway
на srv2
, потому что закрытый ключ находится только на моей локальной машине. Чтобы сделать вещи еще более сложными, мне нужен один ключ для gateway
, а другой ключ для onemoregateway
и srv2
.
Итак, как мне пройти через туннель до srv2
?
Я чувствую, что это должно быть как-то возможно, так как мои коллеги сделали это, используя Putty+Pageant в Windows, но я нахожусь на Linux