La mayoría de las personas prefieren utilidades como FileZilla o WinSCP cuando necesitan transferir archivos hacia o desde servidores Linux/BSD. Si OpenSSH se está ejecutando en esta computadora, puede conectarse a través del protocolo Secure / SSH FTP (SFTP). Las utilidades anteriores facilitan la transferencia de archivos al proporcionar una interfaz gráfica, pero debe instalar y configurar estos programas.
Algunos usuarios prefieren no tener que instalar utilidades adicionales. Otros simplemente prefieren la línea de comandos porque le da más control y una forma más rápida de decirle a la herramienta lo que quiere que haga. Pero ahora hay una razón más para recurrir a la línea de comandos cuando desee transferir archivos. Windows 10 comenzó a incluir Cliente OpenSSH por defecto Lo 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 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 con 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á utilizando Windows, abra el símbolo del sistema. Si está utilizando Linux, abra una ventana de Terminal.
Para iniciar sesión en el servidor usando el comando sftp, puede usar exactamente la misma sintaxis que el comando ssh. Si no está familiarizado con esto, lea el tutorial vinculado en el párrafo de introducción.
sftp your_username@IP-address-or-hostname
Comandos de ejemplo:
sftp john@203.0.113.1 sftp john@example.com
Cómo descargar archivos después de iniciar sesión con sftp
Ahora puede ingresar comandos en sftp> indicador para interactuar con archivos en el servidor.
Para descargar un archivo:
get /path/to/file/on/server
Por ejemplo:
get /bin/ls
Esto se descargará a su directorio actual, en el que estaba localmente antes de iniciar sesión en el servidor. Para descargar a un directorio local específico (Windows):
get /path/to/file/on/server C:\path\to\local\folder
مثال
get /bin/ls C:\User\John\Desktop
En Linux, solo use rutas de tipo Unix (una barra diagonal en lugar de una barra diagonal inversa):
get /bin/ls /home/john/Desktop
Las rutas también pueden ser relativas. Esto significa que si estás en C:\Usuario\Juan Ya cuando abre el símbolo del sistema, puede descargarlo en el escritorio (C:\Usuario\John\Escritorio) Con:
get /bin/ls Desktop
Las rutas remotas también pueden ser relativas, lo que significa que si inicia sesión con sftp juan@203.0.113.1 Ya estarás en el directorio.” casa/juan, por lo que puede usar esto para descargar/inicio/juan/archivo'
get file Desktop
Esto descargará "/inicio/juan/archivo" a mi "C:\Usuarios\SuUsuario\Escritorio\archivo."
Para copiar directorios, debe agregar el parámetro -r al comando, lo que indica un iterador.
get -r /bin Desktop\bin
Recuerde agregar un nombre para el nuevo directorio que desea crear localmente, como "Escritorio\bin" En este caso. si vas a usar obtener -r /bin Escritorio , los archivos se copiarán directamente en el escritorio. Son los archivos los que se copiaron, no el directorio en sí.
Cómo descargar archivos después de iniciar sesión con sftp
La descarga de archivos o directorios sigue los mismos principios. La única excepción es que las rutas están invertidas, lo que significa que primero especifica el archivo/directorio local y luego la ruta remota.
En Windows:
put C:\path\to\local\content /path/where/to/upload
En Linux:
put /path/to/local/content /path/to/remote/location
Al cargar directorios (copiarlos), recuerde que se aplica la misma regla que en la sección anterior: en realidad son los archivos del directorio los que se copiaron, no el directorio en sí. Por lo tanto, seleccione un nuevo nombre para el directorio al que desea copiar estos archivos.
put -r Desktop/bin bin
Esto creará un nuevo directorio llamado “papeleraEn el otro extremo.
Para salir del shell de sftp, simplemente escriba:
salida
Cómo reanudar la transferencia y usar rutas que contienen espacios
Cuando transfiere un archivo grande, si se interrumpe, puede reanudar el comando reemplazando el comando anterior retribución وolvidar en vez de poner و obtener. Solo asegúrese de usar las mismas rutas que usó la última vez, para que coincidan exactamente con el origen y el destino.
reget /path/to/file/on/server C:\path\to\local\file reput C:\path\to\local\file /path/to/file/on/server
Para reanudar las transferencias de directorios, simplemente agregue el parámetro -r.
reput -r Desktop/bin bin
Si la ruta a un archivo contiene espacios, escríbalo entre comillas.
Esto no funcionará:
put C:\Program Files (x86)\Steam\steamapps\common\The Witcher 3\SOUNDTRACK\The_Witcher_3_Wild_Hunt_-_Official_Soundtrack_(steam_edition)_mp3.zip
Pero esto funcionará:
put "C:\Program Files (x86)\Steam\steamapps\common\The Witcher 3\SOUNDTRACK\The_Witcher_3_Wild_Hunt_-_Official_Soundtrack_(steam_edition)_mp3.zip"
(Sí, puedes encontrar la banda sonora en The Witcher 3 si la tienes instalada en Steam).
Conclusión
Esto cubre las cosas más importantes que necesita saber sobre sftp. Si encuentra que necesita aprender más, puede seguir leyendo Guía completa de comandos sftp en línea.