Me conecto al servidor2 de la siguiente manera:
home$ ssh server1
server1$ ssh server2
server2$
A veces también necesito scp de esta manera, lo que lleva un tiempo extra:
home$ ssh server1
server1$ scp server2:file .
server1$ exit
home$ scp server1:file .
¿Hay alguna manera de hacer esto en un comando desde casa? Estoy usando la autenticación de clave pública, pero sería bueno si también funcionara con contraseñas.
Puede usar el túnel SSH de esta manera:
Esto abre un socket en su máquina local, en el puerto 8888 (suponiendo que ningún otro proceso esté usando ese puerto), que hace un túnel de la conexión al servidor2 (suponiendo que SSH se está ejecutando en el puerto 22 allí) a través del servidor1. Las banderas
-N
y le-f
dicen a SSH que se bifurque en segundo plano (tendrá que matar el proceso si desea detener el túnel).Ahora puede scp archivos del servidor2 simplemente haciendo
fuente
home$ server1 "ssh server2"
pero cuando se trata de más servidores, escapar de la cadena de comandos será doloroso.
fuente
Use SOCKS5 con un túnel dinámico
Cree un túnel ssh dinámico para la primera máquina. Luego, use la primera conexión como un proxy SOCKS5 para llegar al segundo host en la red remota.
Esto es fácil de configurar a través de masilla. Puede reutilizar el proxy tantas veces como desee. Algunos programas admiten SOCKS5 directamente. Como masilla y ssh.
En Linux, los proxychains se pueden usar para proxificar programas que no admiten SOCKS5 de forma nativa. En Windows, me gusta Proxycap. Funciona bien con RDP.
Para configurar esto usando Putty:
En la primera página de configuración del host, debajo de túneles:
Luego, en la configuración para el segundo host, bajo proxy:
Para conectarse al segundo host. Primero tendrá que conectarse e iniciar sesión en el primer host. Entonces debería poder conectarse al segundo host a través de la conexión ssh proxificada,
También puede hacerlo desde la línea de comandos con una entrada ssh_config: http://www.undeadly.org/cgi?action=article&sid=20070925181947
fuente