A continuación detallo los pasos a seguir para dar de alta un usuario con acceso SFTP a una ruta concreta en Amazon Web Services.
El primer paso es realizar la instalación de vsftpd, para ello necesitamos cambiar de usuario al root
sudo su -root
yum install vsftpd
Después creamos el usuario y el grupo de usuarios
groupadd sftponly
useradd -d /home/sftpuser -g sftponly sftpuser
chown root:root /home/sftpuser
mkdir /home/sftpuser/.ssh
A continuación creamos la clave privada a partir del fichero de claves de conexión a AWS, el fichero claves.pem, que se genera cuando se crea una instancia.
Para ello utilizamos el puttygen, cargamos el fichero y grabamos el fichero de claves privadas (p.e. claves.ppk); además copiamos la clave pública generada por el puttygen en el fichero /home/sftpuser/.ssh/authorized_keys
Cambiamos el propietario de la carpeta .ssh
chown -R sftpuser:sftponly /home/sftpuser/.ssh
mkdir /home/sftpuser/inputs
chmod -R 0755 /home/sftpuser
cd /home/sftpuser/directory/
mkdir finalFolder
chown stfpuser:sftponly finalFolder
Se edita el fichero /etc/ssh/sshd_config y se modifica la siguiente información:
#Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match group sftponly
ChrootDirectory /home/sftpuser/directory
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
Y se reinicia el servicio
/etc/init.d/sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
Después de configurar el servidor en la máquina de AWS es necesario configurar el cliente de FTP para que utilice el fichero de clave privada; para ello accedemos en Filezilla a Edit > Settings > Connection > SFTP > Add keyfile e importamos el fichero de clave privada que ha generado el puttygen.
A continuación creamos en el Site Manager una configuración de acceso con:
- Host: ip de la máquina AWS,
Protocol : SFTP – SSH File Transfer Protocol,
Logon Type: Ask for password,
User: sftpuser
Y ya está!! A conectarse y cargar y descargar ficheros…