Quiero descargar archivos de la computadora de mi oficina a mi computadora portátil.
Puedo conectar mi máquina de oficina por SSH al servidor de la organización y luego SSH desde el servidor a mi máquina de oficina.
Los únicos comandos que acepta el servidor de la organización son ssh, ssh1 y ssh2.
¿Cómo puedo descargar un archivo de mi máquina de oficina (remota) a través del servidor en mi computadora portátil (local)?
Respuestas:
Las respuestas anteriores mencionan cómo usar la directiva ProxyJump (agregada en OpenSSH 7.3) para conectarse a través de un servidor intermedio (generalmente denominado host de bastión), pero lo mencionan solo como un argumento de línea de comando.
A menos que sea una máquina a la que no se conectará en el futuro, lo mejor es que la configure
~/.ssh/config
.Pondría un archivo como:
Si está utilizando una versión anterior de OpenSSH que no es compatible con ProxyJump, la reemplazaría con el equivalente:
y si su versión ssh local era realmente antigua y no era compatible
-W
:aunque este último requiere que la máquina de bastión esté
nc
instalada.La belleza de ssh es que puede configurar cada destino en el archivo, y se apilarán muy bien. Por lo tanto, terminas trabajando
office-machine
como el nombre de host en todas las herramientas (ssh, scp, sftp ...) ya que eran conexiones directas y descubrirán cómo conectarse en función de ssh_config. También podría tener comodinesHost *.internal.company.local
para hacer que todos los hosts que terminen así pasen por un bastión específico, y se aplicará a todos ellos. Una vez configurado correctamente, la única diferencia entre hacer conexiones de un salto o veinte sería los tiempos de conexión más lentos.fuente
Si tiene un OpenSSH reciente (8.0), puede usar el
-J
interruptor (salto) :Con versiones anteriores (pero al menos 7.3), puede usar la
ProxyJump
directiva , ya sea en la línea de comandos:o en el
ssh_config
archivo, como lo muestra la respuesta de @ Ángel.Existen otras opciones, como el
ProxyCommand
reenvío de puertos, que puede usar incluso en versiones anteriores de OpenSSH. Estos están cubiertos en ¿OpenSSH admite el inicio de sesión en múltiples tiendas?fuente
ssh -J userA@orgserv userB@officecomp cat remote/path > local/path
scp
no es compatible-J
, podría ser lo suficientemente nuevo como para admitir laProxyJump
opción; pruebe una de las otras respuestas que usan esta opción explícitamente.ssh
preguntas que sugieren modificar suconfig
para hosts específicos cuando una simple opción de línea de comando es suficiente para hacer el trabajo.-J user@intermediate
cada vez que necesite conectarme.A veces podemos usar la tubería. Ese tiempo es hoy.
También puedes subir
Sí, hay otras soluciones que implican representación, etc., pero saber cómo hacerlo es útil.
fuente
cat
!Usa la
ProxyJump
configuración:fuente
Existe un antiguo protocolo llamado ZMODEM : pocos programas lo admiten en estos días, pero cuando funciona, puede ser bastante conveniente.
Primero verifique si el programa de terminal de su computadora portátil admite ZMODEM. (Por ejemplo, puede configurar iTerm2 (en Mac) para admitir ZMODEM. Un script de ejemplo está disponible aquí ).
En su máquina de oficina, ejecute:
sudo apt install lrzsz
Ahora todo lo que tiene que hacer es ssh a su máquina de oficina y ejecutar
sz (filename)
. El archivo se descargará a través de su terminal.fuente
Configuración bajo ssh del usuario:
~/.ssh/config
Puede copiar ahora desde el servidor de intranet directamente sobre 3 servidores de salto.
scp [email protected]:/home/user/ ./*
Prefiero esto porque ya no necesito especificar servidores de salto con scp
fuente
Vía SCP -3:
fuente
-3
opción se describe como "Las copias entre dos hosts remotos se transfieren a través del host local". Si bien creo que esta pregunta estipula que el host local no podría acceder a "remote2".-3
. Pero esto supone que puede conectarse desde la máquina del medio a la primera.-J
/JumpHost
. Por el contrario, ya que tiene la limitación que @Joe menciona.