Я пытаюсь туннелировать к серверу через сервер-мост. До сих пор я смог заставить его работать из командной оболочки, используя следующую команду:
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 -A remote_userid@remoteserver.com
в качестве команды для запуска на компьютере моста, config не дает вам способа предоставлять команды по умолчанию. То, что вы пытаетесь сделать works
само по себе, но затем ssh пытается использовать ваш ProxyCommand
как туннель и начинает запускать протокол SSH по нему, где на другом конце находится оболочка, а не sshd, прослушивающий протокол SSH.
ProxyCommand
предполагается использовать. Обычно он используется с netcat, где ssh передает через него свой вывод, а netcat действует как туннель к SSH-порту удаленного сервера . Вам нужно что-то вроде ProxyCommand,ssh -W %h:%p bridge_userid@bridgemachine.com
если вы хотите использовать эту функцию.