¿Cómo ssh y scp directamente a través de un servidor?

2

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.

Tim
fuente

Respuestas:

1

Sugiero usar MobaXterm: solo tienes que

  • descárguelo desde aquí: http://mobaxterm.mobatek.net/download-home-edition.html
  • Haga clic en "Nueva sesión" y elija "ssh"
  • Especifique su nombre de computadora o dirección IP "server2" en el campo "Nombre de host remoto"
  • Especifique su nombre de computadora "servidor1" o dirección IP en el campo "SSH rebote (conectarse a través de un servidor ssh de puerta de enlace)"

Esto lanzará un nuevo comando SSH, directamente a su computadora "server2". A la izquierda de la ventana, también tendrá acceso a una herramienta gráfica de transferencia de archivos SFTP que también se conectará directamente al "servidor2".

Didier
fuente
Eso parece un buen programa. Sin embargo, no siempre tengo un servidor X ejecutándose en el servidor original.
Tim
OK, pero no se requiere un servidor X: puede elegir deshabilitarlo en la configuración de MobaXterm si lo desea.
Didier
Ok, por el nombre simplemente asumí que no era un programa de línea de comandos. Lo comprobaré.
Tim
1

Puede usar el túnel SSH de esta manera:

ssh -f server1 -L 8888:server2:22 -N

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 -Ny le -fdicen 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

scp -P 8888 localhost:file
Ruggero
fuente
0

home$ server1 "ssh server2"

pero cuando se trata de más servidores, escapar de la cadena de comandos será doloroso.

Bromista
fuente
0

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:

  • crear un túnel dinámico
  • Establezca el puerto en 9050.
  • Deje en blanco la parte de destino, ya que es dinámica.
  • Guarda tu configuración. (Hecho desde la página de sesión).

Luego, en la configuración para el segundo host, bajo proxy:

  • Seleccione SOCK55.
  • Cambie el nombre del host proxy a 127.0.0.1
  • Establecer el puerto a 9050
  • Luego configure el resto de su sesión como normal
  • Guarda tu configuración

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

Bill Westrup
fuente