SSHFS – Dossier distant via SSH

Accéder à un dossier distant via SSH avec SSHFS

Installer d’abord SSHFS:

sudo apt install sshfs

Créer un répertoire Scripts dans votre dossier personnel (Home)

mkdir ~/Scripts

Créer ensuite un nouveau document Fichier vide dans le dossier Scripts.  Nommer le Toggle-sshfs-192.168.0.11.sh

Insérer le code suivant :

#!/bin/bash

SourceMount="$HOME/sshfs-nas1"

# 1. Gestion stricte des blocages : si le dossier est gelé, mountpoint va bloquer.
# On utilise un timeout de 2 secondes sur la vérification.
if ! timeout 2 mountpoint -q "$SourceMount" 2>/dev/null; then
    echo "Le répertoire $SourceMount n'est pas accessible ou pas monté. Nettoyage..."
    # Démontage forcé/paresseux (-z) au cas où le point est gelé (stale)
    fusermount -u -z "$SourceMount" 2>/dev/null
    sleep 1
    
    echo "Tentative de montage..."
    # AJOUTS CRITIQUES : 
    # - ConnectTimeout=5 : abandonne après 5s si le serveur SFTP ne répond pas
    # - PasswordAuthentication=no : crash proprement au lieu de bloquer si la clé SSH ne fonctionne pas
    sshfs -o ServerAliveInterval=15 \
          -o ServerAliveCountMax=3 \
          -o reconnect \
          -o ConnectTimeout=5 \
          -o PasswordAuthentication=no \
          hostadmin@sftp.example.com:/media/nas1 "$SourceMount"

    # Attente active du montage (expiration après 15 secondes)
    timeout=15
    while ! timeout 2 mountpoint -q "$SourceMount" 2>/dev/null && [ $timeout -gt 0 ]; do
        sleep 1
        ((timeout--))
    done

    if [ $timeout -le 0 ]; then
        echo "Erreur : Le montage SSHFS a expiré ou a échoué."
        exit 1
    else
        echo "Le répertoire $SourceMount a été monté avec succès."
    fi
else
    echo "Le répertoire $SourceMount est déjà monté. Démontage propre..."
    fusermount -u "$SourceMount"
    echo "Le répertoire $SourceMount est maintenant démonté."
fi

Sauvegarder et fermer le document. Ensuite, avec le bouton droit de votre souris accéder aux propriétés du fichier. Dans l’onglet Permissions, cocher la case Autoriser ce fichier à être utilisé comme un programme ou encore utiliser la commande suivante:

sudo chmod +x ~/Scripts/Toggle-sshfs-192.168.0.11.sh

Créer un répertoire sshfs-nas1 dans votre dossier personnel (Home)

mkdir ~/sshfs-nas1

Ajouter le greffon Lanceur au tableau de bord et ajouter un lanceur pour le scripts que nous venons de créer.

Lancer le script Toggle-sshfs-nas1, un mot de passe pour la connexion vous sera demandé et votre lecteur réseau est présentement opérationnel dans votre répertoire personnel. Pour le démonter, il suffit de lancer de nouveau le script.