Я пытаюсь туннелировать к серверу через сервер-мост. До сих пор я смог заставить его работать из командной оболочки, используя следующую команду:
ssh -A -t bridge_userid@bridgemachine.com ssh -A remote_userid@remoteserver.com
Но я пытался обернуть это в свой ~/.ssh/config
файл, и у меня проблемы. Я пробовал:
Host axp
User remote_userid
HostName remoteserver.com
IdentityFile ~/.ssh/id_rsa.eric
ProxyCommand ssh -A -t bridge_userid@bridge_userid.com ssh -A remote_userid@%h
Но когда я это делаю, я получаю следующее сообщение об ошибке, remoteserver.com
и я не уверен, что его вызывает:
ksh: SSH-2.0-OpenSSH_6.8 ^ M: не найдено
Я знаю, что когда я remoteserver.com
вхожу, моя оболочка есть /usr/bin/ksh
.
Я пытался добавить аргументы пути к командам ssh в файле конфигурации, но это не имело никакого значения.
Есть идеи, что это может быть?
ssh
ssh-tunneling
ssh-config
Эрик Б.
источник
источник
ProxyCommand
предполагается использовать. Обычно он используется с netcat, где ssh передает через него свой вывод, а netcat действует как туннель к SSH-порту удаленного сервера . Вам нужно что-то вроде ProxyCommand,ssh -W %h:%p bridge_userid@bridgemachine.com
если вы хотите использовать эту функцию.ssh -A remote_userid@remoteserver.com
в качестве команды для запуска на компьютере моста, config не дает вам способа предоставлять команды по умолчанию. То, что вы пытаетесь сделатьworks
само по себе, но затем ssh пытается использовать вашProxyCommand
как туннель и начинает запускать протокол SSH по нему, где на другом конце находится оболочка, а не sshd, прослушивающий протокол SSH.Ответы:
Jakuje ответ правильный, но, поскольку OpenSSH
7.3
, теперь вы можете использовать,-J
ProxyJump
что проще. Смотрите мои заметки:OpenSSH
7.3
или вышеИспользование
ProxyJump
. Как объяснено в руководстве:ProxyJump
~/.ssh/config
пример~/.ssh/config
Соединить с
Добавить
-v
для подробного выводаПример
-J
командной строки ProxyJump~/.ssh/config
Соединить с
Или использовать
-o
OpenSSH
5.4
или вышеИспользовать
ProxyCommand
с-W
~/.ssh/config
Соединить с
Или использовать
-o
OpenSSH ниже
5.4
~/.ssh/config
Соединить с:
Или использовать
-o
источники
-J
добавлено в OpenSSH 7.3-W
добавлено в OpenSSH 5.4источник
Вам не нужно
netcat
на вашем мосту. Как DanSut предложил в комментариях, вы можетеssh -W
вместо этого использовать параметр командной строки, эта конфигурация должна работать для вас:источник