Mount sftp share
| Fiche express | |
|---|---|
| Type | Montage client d'un partage distant (SFTP/FUSE) |
| Paquet | sshfs
|
| Commandes | sshfs · ssh-keygen · ssh-copy-id
|
| Voir aussi | Vsftpd |
sshfs permet de monter un répertoire distant en local via le protocole SFTP (SSH File Transfer Protocol), au moyen de FUSE. Il ne s'agit pas de FTP au sens classique ni du démon vsftpd : sshfs fonctionne côté client, au-dessus de n'importe quel serveur SSH standard, sans composant serveur FTP dédié.
Installation
sudo apt-get install sshfs
Montage manuel
sudo sshfs user1@192.168.1.10:/var/www /media/partage/
Au premier montage, la clé hôte SSH du serveur distant n'est pas encore connue localement, d'où la question de confirmation habituelle d'OpenSSH (empreinte RSA à vérifier avant d'accepter) :
The authenticity of host '192.168.1.10 (192.168.1.10)' can't be established. RSA key fingerprint is xx:xx:xx:... Are you sure you want to continue connecting (yes/no)? yes user1@192.168.1.10's password:
Le point de montage n'est accessible qu'à l'utilisateur qui a lancé le montage (ou à
root, ici via sudo) — un utilisateur non privilégié obtient une
erreur Permission denied en tentant d'y accéder directement.
Démontage
umount /media/partage
Montage persistant (fstab)
echo "sshfs#user1@192.168.1.10:/var/www /media/partage/ fuse defaults 0 0" >> /etc/fstab
mount -a
Avec une entrée fstab sans clé SSH pré-configurée, mount -a
demande tout de même le mot de passe de manière interactive — voir la section suivante
pour un montage non interactif.
Montage sans mot de passe (authentification par clé)
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub user1@192.168.1.10
mount -a
Une fois la clé publique copiée dans ~/.ssh/authorized_keys du compte distant,
le montage (manuel ou via fstab) ne demande plus de mot de passe.
Montage en tant qu'utilisateur non-root
sshfs user1@192.168.1.10:/var/www/ /home/user1/partage/ -p22 -o uid=user1 -o gid=user1 -o idmap=user -o IdentityFile=/home/user1/.ssh/id_rsa -o allow_other
Entrée fstab équivalente :
sshfs#user1@192.168.1.10:/var/www/ /home/user1/partage/ fuse defaults,uid=user1,gid=user1,idmap=user,allow_other 0 0
allow_other nécessite que l'option user_allow_other soit
décommentée dans /etc/fuse.conf (à vérifier selon distribution).
Voir aussi
- Vsftpd — serveur FTP classique, à distinguer de sshfs/SFTP
- Vsftpd (Debian)