Scp / sshfs en una máquina remota no accesible directamente

Tal vez el título debe ser cambiado, pero tengo la siguiente situación:

  • Puedo ssh a un anfitrión A

  • Desde A, puedo ssh en una máquina B, pero esta máquina no se puede acceder desde mi computadora. El nombre de la máquina (así como su ip) es local solamente.

  • ¿Cómo puedo sshfs (y / o usar scp) directamente a la máquina B, sin tener que escanear archivos de B-> A y luego de A-> mi máquina. Realmente estoy perdiendo la productividad de esa manera,

PS: No puedo cambiar configs en A ni B …

Si se autentica a B con credenciales accesibles en su computadora (llamémoslo W), por ejemplo, una tupla de contraseña / nombre de usuario (en lugar de las teclas en A), puede construir un túnel SSH, por ejemplo:

W $ ssh -L 1234:B:22 A 

y entonces

 W $ ssh -p 1234 usernameB@127.0.0.1 

O similarmente con scp y sshfs. Yo e El puerto 1234 en su máquina local (normalmente 127.0.0.1 o :: 1) se reenvía a B, puerto 22 desde la perspectiva de A.

Si tienes netcat en el host A, entonces ProxyCommand de ssh es tu amigo.

Edite su .ssh / config local como sigue

 Host B HostName B.internal.domain ProxyCommand ssh A nc %h %p 2> /dev/null 

Entonces cuando intenta ssh en el host B: Primero crea una sesión ssh a A y luego el tráfico a través de netcat (nc) al puerto B (% h) 22 (% p).

¿Qué sistema operativo está ejecutando usted y su destino?

Si es Linux, entonces el protocolo Zmodem es perfecto para lo que estás tratando de hacer.