Comment créer un utilisateur SFTP sur mon instance Lightsail ?

Lecture de 4 minute(s)
0

Je souhaiterais créer un utilisateur SFTP sur mon instance Amazon Lightsail.

Résolution

**Remarque :**La démarche suivante permet de créer un utilisateur SFTP ayant accès à un environnement chroot (chroot jail) sans aucun accès SSH. L'utilisateur SFTP ne peut pas accéder aux journaux en dehors de l'environnement ou du répertoire chroot. Le répertoire chroot devient ainsi son répertoire racine.

Configurez votre groupe et votre utilisateur SFTP

  1. Créez un groupe d'utilisateurs SFTP en exécutant la commande suivante :

    sudo groupadd sftp_group

    **Remarque :remplacez ** sftp_group par le nom de votre groupe.

  2. Créez un utilisateur de l'instance avec un répertoire personnel sans accès au shell de connexion SSH. Exécutez la commande suivante pour y parvenir :

    sudo useradd -g sftp_group -m -d  /home/sftp_user -s /sbin/nologin sftp_user

    **Remarque :remplacez ** sftp_user par votre nom d'utilisateur.

Configurez l'authentification de l'utilisateur soit par mot de passe, soit par clé SSH

Authentification par mot de passe

Créez un mot de passe à l'aide de la commande suivante :

sudo passwd sftp_user

Authentification par clé SSH

  1. Si vous souhaitez utiliser l'authentification par clé SSH, créez un dossier .ssh dans le répertoire personnel de l'utilisateur. Ensuite, créez un fichier authorized_keys :

    sudo mkdir /home/sftp_user/.ssh
    sudo touch /home/sftp_user/.ssh/authorized_keys
  2. Ajoutez la clé publique SSH que vous souhaitez utiliser dans le fichier /home/sftp_user/.ssh/authorized_keys. Pour plus d'informations, consultez Configurer les clés SSH pour Lightsail.

  3. Exécutez les commandes suivantes pour modifier la propriété et les autorisations du répertoire de base de l'utilisateur :

    sudo chown sftp_user:sftp_group /home/sftp_user/.ssh -Rsudo chown root:sftp_group /home/sftp_user/
    sudo chmod 755 /home/sftp_user/
    sudo chmod 700 /home/sftp_user/.ssh/
    sudo chmod 600 /home/sftp_user/.ssh/authorized_keys

    Remarque :L'exemple précédent utilise l'autorisation 755 sur le répertoire /home/sftp_user et modifie la propriété de l'utilisateur racine. Ce répertoire utilisateur est utilisé comme répertoire chroot.

Modifiez le fichier /etc/ssh/sshd _config

  1. Modifiez la ligne Subsystem sftp en mettant en commentaire la ligne Subsystem sftp /usr/libexec/openssh/sftp-server:

    # Subsystem sftp /usr/libexec/openssh/sftp-server
  2. Remplacez la ligne précédente par ce texte :

    Subsystem sftp internal-sftp
  3. Ajoutez le texte suivant à la fin du fichier pour limiter l'accès aux utilisateurs SFTP :

    Match Group sftp_group
    ChrootDirectory /home/%u
    ForceCommand internal-sftp

    Dans l'exemple précédent, ChrootDirectory précise le répertoire racine des utilisateurs SFTP. MatchGroup recense les utilisateurs sftp_group qui utilisent le chemin** /home/%u** comme répertoire racine. Les caractères %u représentent l'utilisateur. La directive ForceCommand internal-sftp fentraîne l'utilisation d'un serveur SFTP en cours de processus.

  4. Si vous utilisez l'authentification par mot de passe, définissez ** PasswordAuthentication** dans le fichier /etc/ssh/sshd_config et assurez-vous qu'elle est définie sur yes.

Créez les répertoires chroot pour l'utilisateur

  1. Pour créer un répertoire chroot, exécutez la commande suivante :
    sudo mkdir /home/sftp_user/uploads
    **Remarque :**Remplacez le nom de répertoire, sftp_user et uploads par le nom de votre répertoire.
  2. Modifiez la propriété des fichiers :
    sudo chown sftp_user:sftp_group /home/sftp_user/uploads
    **Remarque :**Remplacez le nom de répertoire, sftp_user et uploads par le nom de votre répertoire.

Vérifiez vos modifications et redémarrez le service SSHD

  1. Vérifiez que les autorisations de répertoire sont celles indiquées dans l'exemple suivant :

    ls -ld /homedrwxr-xr-x 3 root root 23 Oct  6 15:17 /home
    
    ls -ld /home/sftp_user
    drwxr-xr-x 3 root sftp_group 21 Oct  6 15:17 /home/sftp_user
    
    ls -ld /home/sftp_user/uploads/
    drwxr-xr-x 2 sftp_user sftp_group 6 Oct  6 15:17 /home/sftp_user/uploads/
  2. Redémarrez le service SSHD :

    sudo systemctl restart sshd

Connectez-vous à l'instance en utilisant SFTP

Authentification par mot de passe

Exécutez ce qui suit :

# sftp sftp_user@example.com's password:

Authentification par clé SSH

Exécutez ce qui suit :

# sftp -i key.pem sftp_user@example.com
AWS OFFICIEL
AWS OFFICIELA mis à jour il y a un an