sftp

No se debe usar FTP; hay otra versión, que es LFTP - sin embargo, sigue siendo mejor utilizar SFTP. Primero hay que conectarse:

$ sftp -P 22 usuario@sftp.ejemplo.com

donde -P define el puerto (el número 22 por defecto), usuario es el nombre de usuario y sftp.ejemplo.com es el dominio. Para navegar en el servidor remoto, se utiliza pwd, ls y cd. Se pueden crear directorios con mkdir.

Para cambiar la parte local se utiliza lpwd y lcd.

get se utiliza para descargar, y put para enviar. Poner -r lo hace recursive. Aquí hay un buen tutorial.

Lo más fácil es comprimir los archivos antes de mandarlos.

Servidor sftp

open-ssh tiene que estar instalado (ver referencia)

  1. Crear un directorio para albergar a los usuarios de sftp
sudo mkdir -p /data
sudo chmod 701 /data
  1. Crear un grupo para usuarios de sftp
sudo groupadd GROUP
  1. Crear un usuario para utilizar sftp
sudo useradd -g GROUP -s /sbin/nologin USERNAME
sudo passwd USERNAME
  1. Crear un directorio en la carpeta de sftp (el usuario puede descargar todos los archivos en su carpeta; pero para subir archivos, tiene que meterse en la carpeta upload)
sudo mkdir -p /data/USERNAME/upload
sudo chown -R root:GROUP /data/USERNAME
sudo chown -R USERNAME:GROUP /data/USERNAME/upload
  1. Configurar /etc/ssh/sshd_config

Añadir al final del archivo las siguientes líneas (hay que resetear el servidor con systemctl restart sshd para que tenga efecto)

Match Group GROUP
ChrootDirectory /data/%u
ForceCommand internal-sftp