La mayoría de las personas prefieren utilidades como FileZilla o WinSCP cuando necesitan transferir archivos hacia o desde servidores Linux / BSD. Si el demonio OpenSSH se está ejecutando en esta computadora, puede conectarse a él mediante Secure / SSH FTP (SFTP). Las utilidades mencionadas anteriormente facilitan la transferencia de archivos al proporcionar una interfaz gráfica, pero es necesario instalar y configurar estos programas.
Algunos puristas prefieren no necesitar instalar utilidades adicionales. Otras personas simplemente prefieren la línea de comandos porque te da más control y una forma más rápida de decirle a la utilidad lo que quieres que haga. Pero ahora hay una razón más para llamar a la línea de comando cuando desea transferir archivos. Windows 10 ha comenzado a incluir, de forma predeterminada, un cliente OpenSSH que le permite conectarse a servidores Linux / BSD directamente desde el símbolo del sistema.
Este cliente también viene con un montón de otras utilidades, y SFTP es una de ellas. Así que 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 Windows maquinaria.
La utilidad sftp también está disponible en máquinas Linux y funciona igual.
Cómo conectarse con el comando sftp
Si estas activo Windows, abra la línea de comando. Si está en Linux, abra una ventana de terminal.
Para conectarse a un servidor con sftp
comando, use exactamente la misma sintaxis que ssh
orden. Si no está familiarizado con esta sintaxis, lea el tutorial relacionado en el párrafo introductorio.
sftp your_username@IP-address-or-hostname
Ejemplos de comandos:
sftp john@203.0.113.1 sftp john@example.com
Cómo descargar archivos después de iniciar sesión con sftp
Ahora puede realizar sus pedidos en sftp >
pedirle que interactúe con los archivos del servidor.
Para descargar un archivo:
get /path/to/file/on/server
Ejemplo:
get /bin/ls
Esto se descargará a su directorio actual, en el que se encuentra localmente antes de conectarse al servidor. Para descargar a un directorio local específico (en Windows):
get /path/to/file/on/server C:pathtolocalfolder
Ejemplo
get /bin/ls C:UserJohnDesktop
En Linux, simplemente use las rutas de Unix (barra diagonal en lugar de barra invertida):
get /bin/ls /home/john/Desktop
Notar: incluso si (incorrectamente) usa barras para Windows maneras, en sftp parece que la utilidad los resolverá.
Los caminos también pueden ser relativos. Esto significa que si ya estaba en C:UserJohn
cuando abre la línea de comando, puede descargarlo en su escritorio (C:UserJohnDesktop
) con:
get /bin/ls Desktop
Las rutas remotas también pueden ser relativas, lo que significa que si se conecta con sftp john@203.0.113.1
, ya estará en el directorio «/ home / john», por lo que puede usarlo para descargar «/ home / john / file:»
get file Desktop
Cargaría «/ home / john / file» en «C: Users YourUser Desktop file».
Para copiar directorios, debe agregar el archivo -r
parámetro personalizado, que significa recursivo.
get -r /bin Desktopbin
Recuerde agregar un nombre para el nuevo directorio que desea crear localmente, como «Escritorio bin» en este caso. Si utiliza get -r /bin Desktop
, los archivos se copiarán directamente al escritorio. Se copian los archivos, 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.
Sobre Windows:
put C:pathtolocalcontent /path/where/to/upload
Bajo Linux:
put /path/to/local/content /path/to/remote/location
Al descargar directorios (recursivo), recuerde que se aplica la misma regla que en la sección anterior: se copian los archivos del directorio, no el directorio en sí. Por lo tanto, especifique un nuevo nombre para un directorio donde desea copiar estos archivos.
put -r Desktop/bin bin
Esto crearía un nuevo directorio llamado «bin» en el lado remoto.
Para salir del shell sftp, simplemente escriba:
exit
Cómo reanudar transferencias y usar rutas que contienen espacios
Al transferir un archivo grande, si se interrumpe, puede reanudar reemplazando el comando anterior con reput
y reget
en lugar de put
y get
. Asegúrese de utilizar exactamente las mismas rutas que utilizó la última vez para que el origen y el destino coincidan exactamente.
reget /path/to/file/on/server C:pathtolocalfile reput C:pathtolocalfile /path/to/file/on/server
Para reanudar las transferencias de directorio, simplemente agregue el archivo -r
configuración
reput -r Desktop/bin bin
Si la ruta de un archivo contiene espacios, escríbalo entre comillas.
No funcionará:
put C:Program Files (x86)SteamsteamappscommonThe Witcher 3SOUNDTRACKThe_Witcher_3_Wild_Hunt_-_Official_Soundtrack_(steam_edition)_mp3.zip
Pero va bien :
put "C:Program Files (x86)SteamsteamappscommonThe Witcher 3SOUNDTRACKThe_Witcher_3_Wild_Hunt_-_Official_Soundtrack_(steam_edition)_mp3.zip"
(Sí, puedes encontrar la banda sonora de Witcher 3 allí si la tienes instalada en Steam).
Conclusión
Cubre las cosas más importantes que necesita saber sobre sftp. Si encuentra que necesita saber más, puede seguir leyendo manual completo de comandos sftp en línea.