Introducción
SFTP (Protocolo de transferencia segura de archivos) se incluye junto con SSH como una forma segura de transferir archivos entre sistemas remotos. También permite a los usuarios realizar tareas administrativas básicas en servidores remotos, como administrar archivos y directorios y configurar permisos de archivos.
En este tutorial, le mostraremos cómo usar SFTP para transferir archivos entre un sistema local y uno remoto usando la interfaz de terminal.
Requisitos previos
- Acceso a un sistema local y a un servidor remoto, conectados mediante un par de claves públicas SSH.
- Una conexión a Internet que funcione.
- Acceso a la ventana de terminal.
Cómo conectarse mediante SFTP
SFTP establece una conexión segura entre sistemas utilizando el protocolo de red SSH. Esto le permite conectarse a cualquier sistema que tenga una copia de su clave SSH pública.
La conexión a otro sistema mediante SFTP sigue la misma sintaxis de comandos que la conexión mediante SSH. El comando requiere que proporcione un nombre de usuario y un nombre de host remoto o una dirección IP para el sistema al que desea acceder:
sftp [username]@[remote hostname or IP address]
En el siguiente ejemplo, nos estamos conectando a un sistema con la dirección IP 192.168.100.5 usando el phoenixnap nombre de usuario:
sftp [email protected]
Para finalizar una conexión actual, use:
exit
Cómo transferir archivos mediante SFTP
El uso de SFTP le permite transferir archivos desde un servidor remoto a un sistema local y viceversa.
Transferir archivos remotos a un sistema local
Usa el get
comando en la interfaz SFTP para transferir un archivo desde un servidor remoto a su sistema local:
get [path to file]
Por ejemplo, para transferir un archivo llamado example_document.txt desde el Inicio del sistema remoto directorio al sistema local, use:
get example_document.txt
De forma predeterminada, SFTP transfiere archivos al Inicio del sistema local. directorio. Para transferir archivos a un directorio diferente, agregue la ruta al directorio al final de get
comando:
get example_document.txt Downloads
Para cambiar el nombre de archivo en el sistema local, agregue el nuevo nombre de archivo al final de get
dominio.
get example_document.txt sample01.txt
En el ejemplo anterior, get
el comando obtiene el example_document.txt y lo guarda como sample01.txt en el sistema local.
SFTP también permite la transferencia de un directorio completo desde el sistema remoto usando -r
bandera, que indica una transferencia recursiva de todos los archivos en el directorio:
get -r Example_Directory
Agrega el -P
marcar a get
comando para transferir el archivo o directorio conservando los permisos y tiempos de acceso:
get -Pr Example_Directory
Usa el ls
comando para verificar la transferencia al sistema local:
ls -l
Transferir archivos locales a un servidor remoto
Para transferir archivos desde un sistema local a un servidor remoto, use el put
dominio. El put
El comando usa la misma sintaxis y opciones que get
comando.
put [path to file]
Por ejemplo, para transferir un example01.txt archivo al servidor remoto, use:
put example01.txt
Para transferir el archivo a un directorio específico en el servidor remoto, agregue la ruta al directorio al final de put
comando.
put example01.txt Example_Directory
Agregar un nuevo nombre de archivo al final de put
El comando cambia el nombre del archivo transferido en el servidor remoto.
put example01.txt text_sample.txt
Transferir un directorio completo requiere -r
bandera.
put -r Test_Directory
Agrega el -P
marca al put
comando para conservar los permisos de archivos:
put -Pr Test_Directory
Verifique la transferencia de archivos usando ls
comando en el sistema remoto:
Mantenimiento de archivos usando SFTP
SFTP admite el mantenimiento básico de archivos. Por ejemplo, use SFTP para modificar los permisos de archivos y directorios en un sistema remoto.
El chown
El comando cambia la propiedad del archivo de forma similar al comando chmod:
chown [user ID] [path to file]
A diferencia del chmod
comando, chown
acepta identificaciones de usuario solamente y no nombres de usuario. Encontrar los UID para el servidor remoto mediante la interfaz SFTP requiere que transfiera y acceda a /etc/passwd archivo:
get /etc/passwd
!less passwd
El UID de cada usuario se puede encontrar en la tercera columna, separados por dos puntos:
El chmod
El comando funciona igual que en el shell estándar:
chmod [permission] [path to file]
Otra opción es cambiar la propiedad del archivo de grupo con chgrp
comando:
chgrp [group ID] [path to file]
Al igual que con los UID, los ID de grupo se encuentran en la tercera columna de /etc/group archivo en el servidor remoto:
get /etc/group
!less group
SFTP le permite configurar un umask local, que cambia el permiso de archivo predeterminado para los archivos transferidos al sistema local.
Por ejemplo:
lumask 022
El comando anterior cambia el umask local a 022 . Cada archivo transferido después de configurar este umask ahora tiene el 644 permiso por defecto. Todavía puede conservar el permiso original usando -p
bandera.
Otra forma de cambiar los permisos de archivos locales es usar SFTP para replicar el comportamiento de los comandos de shell. Para hacer esto, agregue un signo de exclamación (! ) antes del nombre del comando.
Por ejemplo, usando chmod
comando en el sistema local:
!chmod [permission] [path to file]