# SFTP

SFTP, pour Secure File Transfer Protocol (ou protocole de transfert de fichiers SSH). Un tunnel est alors créé et chiffré.

[![image-1616495598095.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/p5vCByd7F99BWS9i-image-1616495598095.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/p5vCByd7F99BWS9i-image-1616495598095.png)

(Source : [https://exavault.medium.com/what-is-sftp-the-smart-business-file-transfer-solution-3763174503c0](https://exavault.medium.com/what-is-sftp-the-smart-business-file-transfer-solution-3763174503c0))

Pour la mise en place, on va créer un utilisateur, créer le répertoire sftp et modifier les autorisations (interdire l'accès en shell par exemple).

```bash
adduser sftpuser
#mot de passe : sisrsisr
```

On crée ensuite le répertoire et les droits/permissions.

```bash
mkdir -p /var/sftp/uploads
chown root:root /var/sftp
chmod 755 /var/sftp
chown sftpuser:sftpuser /var/sftp/uploads
```

On restreint ensuite l'accès à ce répertoire.

```bash
nano /etc/ssh/sshd_config
```

On rajoute en fin de fichier :

```
Match User sftpuser
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no
```

On redémarre le service sshd.

```bash
systemctl restart sshd
```

On vérifie :

[![image-1616496030463.png](https://docs.khroners.fr/uploads/images/gallery/2021-03/scaled-1680-/9MsoLhGYANU9QtAP-image-1616496030463.png)](https://docs.khroners.fr/uploads/images/gallery/2021-03/9MsoLhGYANU9QtAP-image-1616496030463.png)