Estoy tratando de hacer un túnel a un servidor a través de un servidor puente. Hasta ahora, he podido hacer que funcione desde el shell de comandos correctamente usando el siguiente comando:
ssh -A -t bridge_userid@bridgemachine.com ssh -A remote_userid@remoteserver.com
Pero he estado tratando de incluir esto en mi ~/.ssh/config
archivo y tengo problemas. He intentado:
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
Pero cuando lo hago, recibo el siguiente mensaje de error remoteserver.com
y no estoy seguro de qué lo está causando:
ksh: SSH-2.0-OpenSSH_6.8 ^ M: no encontrado
Sé que cuando inicio sesión remoteserver.com
, mi shell es /usr/bin/ksh
.
Intenté agregar argumentos de ruta a los comandos ssh en el archivo de configuración, pero no hizo ninguna diferencia.
Alguna idea de lo que puede ser?
ssh -A remote_userid@remoteserver.com
como un comando para ejecutar en la máquina del puente, config no le proporciona una forma de proporcionar comandos predeterminados. Lo que intenta hacer works
en sí mismo, pero luego ssh intenta usar su ProxyCommand
como un túnel y comienza a disparar el protocolo SSH hacia abajo donde hay un shell esperando en el otro extremo en lugar de un sshd que escucha el protocolo SSH.
ProxyCommand
es así como se debe usar. Por lo general, se usa con netcat donde ssh está canalizando su salida a través de él y netcat actúa como el túnel hacia el puerto SSH del servidor remoto . Necesita un ProxyCommand similar assh -W %h:%p bridge_userid@bridgemachine.com
si desea usar esa función.