El Protocolo de transferencia de archivos es un protocolo de comunicación estándar utilizado para la transferencia de archivos informáticos desde un servidor a un cliente en una red informática.
FTP no es popular hoy en día porque carece de seguridad. Cuando se envía un archivo mediante este protocolo, los datos, el nombre de usuario y la contraseña se comparten en texto sin formato, lo que significa que un pirata informático puede acceder a esta información con poco o ningún esfuerzo. Para que los datos estén seguros, debe usar una versión actualizada de FTP como SFTP.
SFTP Secure File Transfer Protocol es un protocolo de transferencia de archivos que brinda acceso seguro a una computadora remota para brindar comunicaciones seguras. Aprovecha SSH:Secure Socket Shell y, con frecuencia, también se lo conoce como "Protocolo de transferencia de archivos de Secure Shell".
Contenido relacionado
- Cómo configurar un servidor SFTP en el servidor Debian 11
- Descargar archivos desde el servidor SFTP utilizando un script de python
- Enumere, cargue y descargue archivos desde un servidor SFTP usando golang
- Cómo configurar un servidor SFTP en OpenSUSE Leap 15.3 Server
- Cómo instalar y configurar el servidor sftp en Ubuntu 20.04
- Cómo configurar un servidor SFTP en CentOS 8/RHEL 8 Server
Requisitos
Para seguir, asegúrese de tener lo siguiente:
- Un servidor SFTP al que conectarse. Si desea configurar el servidor, consulte las guías anteriores
- Credenciales para conectarse al servidor
Tabla de contenido
- Conectando al servidor SFTP
- Comprobando la versión de sftp
- Mostrando directorio de trabajo remoto
- Mostrar el directorio de trabajo de la máquina local
- Subir archivos al servidor sftp
- Descargando archivos desde el servidor sftp
- Crear y eliminar directorio en el servidor sftp
- Eliminar archivos en el servidor sftp
- Renombrar archivos en el servidor sftp
- Comprobación del uso de archivos en el servidor sftp
- Obtener ayuda
1. Conectando al servidor SFTP
Puede usar la terminal de línea de comandos para probar su inicio de sesión en SFTP. Esto incluso se puede hacer localmente en el servidor sftp.
Este es el formato del comando de inicio de sesión:
sftp [user]@[host]
Vamos a conectarnos a nuestro servidor. se necesitará su nombre de usuario y contraseña de SFTP.
sftp [email protected]
Salida:
$ sftp [email protected]
The authenticity of host '192.168.10.10 (192.168.10.10)' can't be established.
ECDSA key fingerprint is SHA256:99KvuL95zO2CQbC8X0Re/Q+cYrJgqQgzpf1leemnjmY.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '192.168.10.10' (ECDSA) to the list of known hosts.
[email protected]'s password:
Connected to 192.168.10.10.
sftp>
Esto lo iniciará en el servidor. El directorio predeterminado es /home
dir especificado en ChrootDirectory /home
directiva en las configuraciones del servidor ssh.
2. Comprobación de la versión de SFTP
Utilice el comando de versión para comprobar la versión de sftp.
sftp> version
SFTP protocol version 3
sftp>
3. Mostrar directorio de trabajo remoto
Si necesita verificar el directorio de trabajo actual en el servidor remoto, el pwd
el comando es útil:
sftp> pwd
Remote working directory: /sftpuser1
sftp>
4. Mostrar el directorio de trabajo de la máquina local
Para mostrar el directorio de trabajo actual del sistema local, use lpwd
comando.
sftp> lpwd
Local working directory: /home/ubuntu
sftp>
El usuario creado solo tendrá acceso a su directorio. Cambiemos a ese directorio con el siguiente comando:
sftp> cd sftpuser1
sftp>
Vaya al directorio de inicio del usuario de SFTP e intente crear un nuevo directorio de la siguiente manera:
sftp> ls
sftpuser1 ubuntu
sftp> cd sftpuser1
sftp> ls
sftp> mkdir datadir
sftp> ls
datadir
5. Subir archivos al servidor sftp
Hacerlo desde local
Cargue archivos a un servidor remoto usando esta sintaxis de comando:
$ sftp {user}@{host}:{remote-path} <<< $'put {local-path}'
Ejemplo:
$ sftp [email protected]:/sftpuser1/ <<< $'put ./citizix.txt'
[email protected]'s password:
Connected to 127.0.0.1.
Changing to: /sftpuser1/
sftp> put ./citizix.txt
Uploading ./citizix.txt to /sftpuser1/citizix.txt
./citizix.txt
Hacerlo desde el servidor sftp
Usa estos comandos: ls
para listar archivos, lls
para la lista local, put
para subir archivos:
sftp>
sftp> pwd
Remote working directory: /sftpuser1/datadir
sftp> ls
sftp> lls
citizix.txt snap tmp
sftp> put citizix.txt
Uploading citizix.txt to /sftpuser1/datadir/citizix.txt
citizix.txt 100% 32 25.8KB/s 00:00
sftp> ls
citizix.txt
sftp>
Para cargar varios archivos de una sola vez, podemos usar mput
comando como en el siguiente ejemplo. Puedes usar mput
con una expresión regular como data[23]
para subir data2
, data3
e ignorar data1
. Puede usar cualquier comodín o expresión regular con mput
.
sftp>
sftp> pwd
Remote working directory: /sftpuser1/data
sftp> ls
sftp> lls
data1 data2 data3
sftp> mput data[23]
Uploading data2 to /sftpuser1/data/data2
data2 100% 0 0.0KB/s 00:00
Uploading data3 to /sftpuser1/data/data3
data3 100% 0 0.0KB/s 00:00
sftp> ls
data2 data3
6. Descargando archivos desde el servidor sftp
Hacerlo desde la máquina local
Para descargar un archivo desde un servidor remoto, use la siguiente sintaxis de comando:
$ sftp {user}@{remote-host}:{remote-file-name} {local-file-name}
Aquí hay una demostración de cómo descargar un archivo en una línea usando sftp:
# sftp [email protected]:/sftpuser1/citizix.txt .
[email protected]'s password:
Connected to 127.0.0.1.
Fetching /sftpuser1/citizix.txt to ./citizix.txt
/sftpuser1/citizix.txt 100% 32 26.7KB/s 00:00
Hacerlo desde el servidor sftp remoto
Descargue un solo archivo del servidor usando get
. Ejemplo descargando data2
sftp>
sftp> ls
data2 data3
sftp> lls
sftp> get data2
Fetching /sftpuser1/data/data2 to data2
sftp> lls
data2
sftp>
Usa mget
para descargar varios archivos como en este ejemplo
sftp>
sftp> ls
data2 data3
sftp> lls
sftp> mget data*
Fetching /sftpuser1/data/data2 to data2
Fetching /sftpuser1/data/data3 to data3
sftp> lls
data2 data3
sftp>
7. Creación y eliminación de directorio en el servidor sftp
Usa los comandos mkdir
y rmdir
para crear y borrar directorios
sftp>
sftp> ls
sftp> mkdir data
sftp> ls
data
sftp> rmdir data
sftp>
8. Eliminando archivos en el servidor sftp
Usa el comando rm
para borrar archivos
sftp> rm data*
Removing /sftpuser1/data/data2
Removing /sftpuser1/data/data3
sftp>
9. Cambio de nombre de archivos en el servidor sftp
Usa el rename
comando para renombrar archivos
sftp>
sftp> ls
data3
sftp> rename data3 data_original
sftp> ls
data_original
sftp>
10. Comprobación del uso del sistema de archivos en el servidor sftp
Muestre estadísticas para el directorio o sistema de archivos actual que contiene 'ruta', use el comando df. Podemos usar el indicador -h para mostrar estadísticas en un formato legible por humanos. Tenga en cuenta que las estadísticas que se muestran son para el sistema de archivos respectivo del servidor SFTP remoto y no para el sistema de archivos de la máquina local.
sftp> df
Size Used Avail (root) %Capacity
29540600 5917856 22103188 23622744 20%
sftp> df -h
Size Used Avail (root) %Capacity
28.2GB 5.6GB 21.1GB 22.5GB 20%
11. Obtener ayuda
Para obtener ayuda sobre los comandos y la sintaxis disponibles para SFTP, use '?' o 'ayuda'.
sftp> ?
Salida:
sftp> ?
Available commands:
bye Quit sftp
cd path Change remote directory to 'path'
chgrp [-h] grp path Change group of file 'path' to 'grp'
chmod [-h] mode path Change permissions of file 'path' to 'mode'
chown [-h] own path Change owner of file 'path' to 'own'
df [-hi] [path] Display statistics for current directory or
filesystem containing 'path'
exit Quit sftp
get [-afpR] remote [local] Download file
help Display this help text
lcd path Change local directory to 'path'
lls [ls-options [path]] Display local directory listing
lmkdir path Create local directory
ln [-s] oldpath newpath Link remote file (-s for symlink)
lpwd Print local working directory
ls [-1afhlnrSt] [path] Display remote directory listing
lumask umask Set local umask to 'umask'
mkdir path Create remote directory
progress Toggle display of progress meter
put [-afpR] local [remote] Upload file
pwd Display remote working directory
quit Quit sftp
reget [-fpR] remote [local] Resume download file
rename oldpath newpath Rename remote file
reput [-fpR] local [remote] Resume upload file
rm path Delete remote file
rmdir path Remove remote directory
symlink oldpath newpath Symlink remote file
version Show SFTP version
!command Execute 'command' in local shell
! Escape to local shell
? Synonym for help
Consulte la página de manual de sftp para obtener más información.
$ man sftp
Salir de la sesión SFTP
Finalmente, puede salir del sftp usando el bye
, exit
o exit
:
sftp> exit
$
Conclusión
En esta guía logramos explorar las operaciones básicas que se pueden realizar en un servidor SFTP