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]