Cómo usar SFTP para transferir archivos hacia / desde servidores Linux

La mayoría de la gente prefiere utilidades como FileZilla o WinSCP cuando necesitan transferir archivos hacia o desde servidores Linux / BSD. Si el demonio OpenSSH se está ejecutando en esa computadora, puede conectarse a él a través del protocolo FTP seguro / SSH (SFTP). Las utilidades mencionadas facilitan la transferencia de archivos al ofrecer una interfaz gráfica, pero debe instalar y configurar esos programas.

Algunos puristas prefieren no tener que instalar utilidades adicionales. Otras personas simplemente prefieren la línea de comandos porque le da más control y una forma más rápida de decirle a la utilidad lo que quiere que haga. Pero ahora hay una razón adicional para recurrir a la línea de comandos cuando desee transferir archivos. Windows 10 comenzó a incluir, de forma predeterminada, un cliente OpenSSH que le permite iniciar sesión en servidores Linux / BSD directamente desde el símbolo del sistema.

Este cliente también viene con un montón de otras utilidades, y SFTP se encuentra entre ellas. Por lo tanto, ahora también puede transferir archivos a los sistemas operativos Linux / BSD, directamente desde el símbolo del sistema, sin tener que instalar nada en su máquina Windows.

La utilidad sftp también está disponible en máquinas Linux y funciona de la misma manera.

Cómo iniciar sesión con el comando sftp

Si está en Windows, abra el símbolo del sistema. Si está en Linux, abra una ventana de terminal.

Para iniciar sesión en un servidor con sftp comando, usa exactamente la misma sintaxis que con el ssh mando. Si no está familiarizado con esta sintaxis, lea el tutorial vinculado en el párrafo de introducción.

Comandos de ejemplo:

sftp-logging-in

Cómo descargar archivos después de iniciar sesión con sftp

Ahora puede ingresar comandos en el sftp > mensaje para interactuar con archivos en el servidor.

Para descargar un archivo:

Ejemplo:

Esto se descargará en su directorio actual, en el que estaba localmente antes de iniciar sesión en el servidor. Para descargar a un directorio local específico (en Windows):

Ejemplo

En Linux, simplemente usa rutas de tipo Unix (barra diagonal en lugar de barra invertida):

Nota: incluso si (incorrectamente) usa barras diagonales para las rutas de Windows, en sftp, parece que la utilidad las entenderá.

Los caminos también pueden ser relativos. Esto significa que si ya estaba en C:UserJohn cuando abrió el símbolo del sistema, puede descargarlo en su escritorio (C:UserJohnDesktop) con:

Las rutas remotas también pueden ser relativas, lo que significa que si inicia sesión con sftp john@203.0.113.1, ya estará en el directorio «/ home / john», por lo que puede usarlo para descargar «/ home / john / file:»

Esto descargaría «/ home / john / file» a «C: Users YourUser Desktop file».

Para copiar directorios, debe agregar el -r parámetro al comando, que significa recursivo.

directorio-copia-sftp

Recuerde agregar un nombre para el nuevo directorio que desea crear localmente, como «Escritorio bin» en este caso. Si usaras get -r /bin Desktop, los archivos se copiarán directamente en el escritorio. Son los archivos los que se copian, no el directorio en sí.

Cómo cargar archivos después de iniciar sesión con sftp

La carga de archivos o directorios sigue los mismos principios. La única excepción es que las rutas se invierten, lo que significa que primero especifica el archivo / directorio local y luego la ruta remota.

En Windows:

En Linux:

Al cargar directorios (recursivo), recuerde que se aplica la misma regla que en la sección anterior: en realidad son los archivos en el directorio los que se copian, no el directorio en sí. Por lo tanto, especifique un nuevo nombre para el directorio en el que desea copiar esos archivos.

Esto crearía un nuevo directorio llamado «bin» en el lado remoto.

Para salir del shell sftp, simplemente escriba:

Cómo reanudar transferencias y usar rutas que contienen espacios

Cuando transfiere un archivo grande, si se interrumpe, puede reanudar reemplazando el comando anterior con reput y reget en lugar de put y get. Solo asegúrese de usar exactamente las mismas rutas que usó la última vez, para que la fuente y el destino coincidan exactamente.

Para reanudar las transferencias de directorio, simplemente agregue el -r parámetro

Si la ruta a un archivo contiene espacios, colóquelo entre comillas.

Esto no funcionará:

Pero esto hará:

(Sí, puedes encontrar la banda sonora de Witcher 3 allí si la tienes instalada en Steam).

Conclusión

Esto cubre las cosas más importantes que debe saber sobre sftp. Si encuentra que necesita aprender más, puede leer el manual completo de comandos sftp en línea.