En SSH, ¿cómo me muevo a mi sistema local?

129

Me ssh-ed en el directorio de mi servicio de hosting, y tar-ed la aplicación de web para descargar. Cuando trato de mv~/mydirectory/backupso /home/mydirectory/backups, define la "casa" como mi raíz en el servicio de hosting que estoy en ssh'ed.

¿Cómo utilizo ssh en una unidad local mientras sigo dentro del sistema del host web?

JeanSibelius
fuente
¿Desde qué sistema operativo te estás conectando?
Zoredache

Respuestas:

181

Lo primero es lo primero: ssh es una forma de iniciar sesión de forma remota en otra computadora. El shell (línea de comando) que obtienes después de ssh es (más o menos) el mismo que si hubieras abierto un xterm en la máquina remota. Si no ofrece tal forma de mover archivos.

Sin embargo, el hecho de que la computadora remota acepte conexiones ssh le brinda algunas opciones para intercambiar archivos:

Use scp Para copiar desde su computadora local al control remoto, escriba, en la computadora local:

scp /tmp/file [email protected]:/home/name/dir

(donde / tmp / file se puede reemplazar con cualquier archivo local y / home / name / dir con cualquier directorio remoto)

Para copiar desde la computadora remota a la local, escriba, en la computadora local :

scp [email protected]:/home/name/dir/file /tmp

Use sshfs Esto es un poco más avanzado pero mucho, mucho mejor (cuando la conexión a internet de ambas computadoras es buena. Si no, manténgase en scp)

Puede "vincular" un directorio desde la computadora remota a un directorio (vacío) de la computadora local. Digamos que "vincula" el / some / remote / dir desde la computadora remota a / home / youruser / remotecomp en su computadora. Si hay un archivo / some / remote / dir / file en la computadora remota, puede verlo en / home / youruser / remotecomp / file. Puede copiar y mv como de costumbre, e incluso puede alterar archivos remotos y directorios.

Sin embargo, tenga en cuenta que cuando finaliza la conexión, / home / youruser / remotecomp vuelve a ser un directorio vacío, y solo guarda en la computadora local los archivos que copió a otros directorios

Lograr esto:

1) instalar sshfs:

sudo apt-get install sshfs

2) crea un directorio vacío

mkdir /home/youruser/remotecomp

3) "enlazar" los dos directorios (el término correcto es montar)

sshfs [email protected]:/some/remote/dir /home/youruser/remotecomp

4) Disfruta

5) "desvincular" los directorios

fusermount -u /home/youruser/remotecomp

Si la computadora local ejecuta Windows Puede encontrar versiones de scppara Windows. Ver, por ejemplo, winscp

josinalvo
fuente
¿Hay alguna manera de copiar el archivo de la máquina remota a la máquina local a través de "terminal en la máquina remota"? En su caso, utilizó el terminal en la máquina local. Estoy hablando de una situación en la que la máquina local es Windows y la remota es ubuntu y estoy conectado a la máquina remota a través de ssh.
chandresh
Usualmente no. Hasta donde sé, copiar a través de "terminal en máquina remota" significa que necesita un servidor SSH en la "máquina local" (lo omití deliberadamente durante mi respuesta, pero "el hecho de que la computadora remota acepte conexiones ssh" significa decir "el hecho de que la computadora remota está ejecutando un servidor ssh")
josinalvo
Sin embargo, puede encontrar "clientes scp" para Windows. Ver, por ejemplo, winscp.net/eng/download.php
josinalvo
Me encanta la sshfsopción
Fibo Kowalsky
Si está transfiriendo un archivo grande, use rsync sobre ssh con rsync -P -e ssh /tmp/file [email protected]:/home/name/dir. Esto se debe a que si la transferencia de un archivo falla a la mitad, scpsimplemente eliminará el archivo. Por otro lado, si usa rsyncla -Popción, mantendrá un archivo incompleto en la máquina remota y cuando reinicie la transferencia, se asegurará de que lo que ya está en la máquina remota coincida con el archivo en su máquina local y luego continúe donde dejó la transferencia.
Boris
16

Puedes usar scpo rsync. En su sistema local:

scp remoteuser@remotehost:/remote/dir/file /local/dir/

Pero, dado que mencionó la copia de seguridad, supongo que sería incremental y tendrá que hacerlo de vez en cuando. Por lo tanto, rsynces una mejor opción para la copia de seguridad incremental. En su shell local:

rsync -avz -e ssh remoteuser@remotehost:/remote/dir /local/dir/

ver rsync(1)y scp(1)páginas de manual para opciones.

Mohammad Hedayati
fuente
10

Puede usar la copia segura scp .

De tu caparazón local:

scp -C username@webhost:/path/of-the/tar.archive /home/mydirectory/backups/

Este ejemplo se copiará a través de ssh desde /path/of-the/tar.archive de su webhost a / home / mydirectory / backups /

Opciones adicionales:

-C : habilita la compresión

pl1nk
fuente
6

Yo tuve el mismo problema. Aquí está la solución fácil: -

  1. Abra nautilus (el explorador de archivos)
  2. Haga clic en + Other Locationsen la parte inferior del panel izquierdo.
  3. En la parte inferior hay una tira Connect to server. Escriba la dirección ssh en el cuadro de entrada como ssh://111.222.333.444/.
  4. Ingrese su nombre de usuario y contraseña en el cuadro de diálogo que se abrirá.
  5. Tras una autenticación exitosa, estará en homeuna ubicación remota. Siéntase libre de mover el archivo aquí y allá.
rushi
fuente
¡Gran respuesta! Simple y cercano a una respuesta a la pregunta real, es decir, ¿cómo se maneja desde la computadora remota ssh? La respuesta es que no puedes, lo haces desde la computadora local. ¡O esto! Lo hace gráficamente desde su explorador para que, al menos para el usuario, parezca que puede mover archivos directamente de remoto a local.
Kvothe
2

Las otras respuestas recomiendan rsynco scp, ambas requieren que conozca la ubicación del archivo que desea copiar en la máquina remota.

Si, en cambio, desea poder hurgar en la máquina remota, como puede sshhacerlo, desea ejecutar sftp. Iniciar sesión en el servidor es muy similar ssh, pero una vez que ingrese, escriba helppara obtener la lista de comandos: le permite moverse en las máquinas locales y remotas, y transferir archivos de un lado a otro fácilmente.

Xanthir
fuente
1

Es extraño que sea imposible desde adentro ssh. En una terminal regular, uno podría enviar / recibir archivos usando los comandos de zmodem.

Esto ayudó a googlear zssh: http://zssh.sourceforge.net/ . Uno tendrá que ejecutarlo como un contenedor para el original ssh.

Victor Sergienko
fuente