Principe : nous allons utiliser un container Docker qui hébergera le serveur SFTP. L'utilisateur provider de l'hôte hébergera les dossiers des utilisateurs du serveur SFTP du container. L'utilisateur provider pourra être accéder uniquement via une clé SSH préalablement autorisé. Les utilisateurs du serveur SFTP seront accessibles par mot de passe. Les dossiers chrootés des utilisateurs du serveur SFTP devront être accessible par l'utilisateur provider.
ssh admin@bkp-<region>-sinp sudo -i useradd provider --create-home --home-dir /home/provider/ --shell /bin/bash mkdir /home/provider/.ssh ; chmod 700 /home/provider/.ssh cp /home/admin/.ssh/authorized_keys /home/provider/.ssh/authorized_keys chown -R provider: /home/provider/.ssh mkdir /home/provider/datamkdir /data/sftp-datachown provider:users /data/sftp-dataln -s /data/sftp-data /home/provider/data cd ~/workspace/sinp-<region>-srv/ rsync -av ./bkp-srv/home/admin/docker/sftp/ admin@bkp-<region>-sinp:/home/admin/docker/sftp/ --dry-run
(si tout est ok, supprimer l'option --dry-run)
ssh admin@bkp-<region>-sinp cd ~/docker/sftp/ssh-keygen -t ed25519 -f ssh_host_ed25519_key < /dev/nullssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key < /dev/null.env et le remplir : cp .env.sample .env ; vi .env users.conf. Voir ci-dessous la section consacrée. docker compose up CTRL+C puis le redémarrer en tant que service : docker compose up -d sudo -i cd /home/provider/data/ mkdir cbna cbnmed cbna-cbnmed cen-paca mkdir cbna cbnmc flavia lpo chown provider:users ./*aptitude install filezillaHOST_SSH_PORT du fichier .env du container Docker SFTP configuré via l'utilisateur admin.SFTP_USER_NAME du fichier .env du container Docker SFTP configuré via l'utilisateur admin.SFTP_USER_PWD du fichier .env du container Docker SFTP configuré via l'utilisateur admin..env, nous allons utiliser un fichier users.conf.ssh admin@bkp-<region>-sinpcd ~/docker/sftpvi users.conf# Use this to encrypt password : echo -n "your-password" | docker run -i --rm atmoz/makepasswd --crypt-md5 --clearfrom=- # The "data" user must have the same ID (1003) as the user storing the data on the host system. # All users must have GUID 100. GUID 100 must be the "users" group GUID on host. data:<encrypted-data-user-password>:e:1003:100 data-reader:<encrypted-data-reader-user-password>:e:1004:100
echo -n "<mot-de-passe>" | docker run -i --rm atmoz/makepasswd --crypt-md5 --clearfrom=-vi docker-compose.ymlvolumes: - ./users.conf:/etc/sftp/users.conf:ro - /data/sftp-data:/home/data-reader
.env : SFTP_USER_NAME, SFTP_USER_PWDchown -R provider:users /home/provider/datadocker compose down ; docker compose up -d