Pour les réseaux exclusivement Linux, je trouve SSHFS natif, stable et extrêmement rapide. J'ai deux machines Xubuntu (18.04) partageant / les dossiers personnels sur SSH.
Voici comment configurer sshfs et se reconnecter automatiquement après un redémarrage à l’aide de fstab sans fournir de mot de passe. Un grand merci à l' utilisateur de serverfault kubanczyk pour la façon de se reconnecter après une suspension / reprise à distance.
J'utiliserai "Local machine - surfbox" pour l'ordinateur auquel vous vous connectez et "Remote machine - devbox" pour l'ordinateur auquel vous vous connectez.
Remplacez "remoteuser" ci-dessous par le nom d'utilisateur auquel vous vous connectez sur la machine distante et "localuser" par le nom d'utilisateur auquel vous vous connectez sur la machine locale. Pour vérifier les noms d'utilisateur, saisissez le echo $USER
terminal sur les machines distantes et locales.
Vérifiez également votre ID utilisateur et votre ID groupe, ils doivent tous deux être 1000.
GroupID: UserID id -g localuser
:id -u localuser
1. Obtenez les adresses IP de vos machines locales et distantes.
hostname -I
Je vais utiliser 192.168.1.150 pour la machine locale ('surfbox') et 192.168.1.151 pour la machine distante ('devbox')
2. Installer des packages sur des ordinateurs locaux et distants
sudo apt install sshfs fuse ssh
3. Créez un groupe fusible et ajoutez-y un utilisateur local
Créer un groupe: sudo groupadd fuse
Ajouter un utilisateur local au groupe: sudo usermod -a -G fuse $user
4. Activer "allow_other" dans la configuration de fusible
Nous aurons besoin de cette option lors du montage dans fstab
Éditez /etc/fuse.conf
avec votre éditeur de ligne de commande. Supprimez le hashtag avant user_allow_other
et enregistrez.
5. Générer des clés SSH sur la machine locale
Ne fournissez pas de mot de passe lorsque vous y êtes invité . Appuyez simplement sur Entrée pour laisser en blanc.
ssh-keygen -t rsa -C youremail@example.com
Les clés sont stockées dans le dossier répertoire /.ssh de la machine locale
6. Transférez la clé publique SSH de votre machine locale vers la machine distante.
ssh-copy-id -i ~/.ssh/id_rsa.pub remoteuser@192.168.1.151
Un mot de passe vous sera demandé pour un utilisateur distant sur un ordinateur distant. La clé publique de la machine locale est maintenant ajoutée au fichier ~ / .ssh / allowed_keys sur la machine distante.
7. Créez un répertoire sur le dossier Ordinateur local / mnt où vous monterez le dossier Ordinateur distant / Accueil.
Choisissez un nom qui ait du sens pour votre ordinateur distant.
sudo mkdir /mnt/devboxhome
8. Montez le répertoire machine / home distant à partir du terminal
La syntaxe pour sshfs est
sshfs [user@]host:[directory] mountpoint [options]
nous utilisons
sudo sshfs [remoteuser]@192.168.1.151:/home/[remoteuser] /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/[localuser]/.ssh/id_rsa
exemple: en supposant que "steve" est le nom d'utilisateur sur les machines locales et distantes
sudo sshfs steve@192.168.1.151:/home/steve /mnt/devboxhome -o allow_other,default_permissions -o identityfile=/home/steve/.ssh/id_rsa
Comme vous avez transféré la clé publique RSA sur la machine distante, vous ne devez pas demander de mot de passe pour l'utilisateur distant.
Vous recevrez un avertissement indiquant que la machine n'est pas approuvée et que vous devez lui indiquer si elle doit être ajoutée. Ajoutez la machine distante comme approuvée.
9. Vérifier: Parcourir le répertoire de la machine distante / home
Dans le terminal sur la machine locale, vous pouvez maintenant lister le répertoire machine / home distant sous / mnt / devboxhome
cd /mnt/devboxhome
ls
ou utilisez Nautilus pour parcourir le répertoire. Génial.
10. Activer la reconnexion après le redémarrage
Nous allons ajouter une entrée dans / etc / fstab pour que cela se produise. Vous aurez besoin de votre identifiant d'utilisateur local de la machine et de votre identifiant de groupe - voir intro si vous avez manqué cela. Éditez / etc / fstab avec votre éditeur de ligne de commande et ajoutez ces deux lignes à la fin de / etc / fstab
# Mount devbox at boot
remoteuser@192.168.1.151:/home/[remoteuser]/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/[localuser]/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
- delay_connect fait attendre le noyau jusqu'à ce que le réseau soit opérationnel jusqu'à ce qu'il tente de monter le répertoire sur la machine distante.
- Comme nous sommes en train d’exécuter en tant que root au démarrage, nous devons spécifier le fichier de clés qui est stocké dans le répertoire de base de localuser.
- allow_other - les utilisateurs autres que celui qui effectue le montage réel peuvent accéder au système de fichiers monté.
- idmap = user - traduit uniquement l'UID de l'utilisateur qui se connecte
- reconnectez, ServersLiveInterval, ServerAliveCountMax - SSH envoie des pings Keep-Alive. Si
ServerAliveCountMax
les pings consécutifs échouent, reconnectez-vous.
Un utilisateur qui se connecte en tant que steve sur des machines locales et distantes aurait:
steve@192.168.1.151:/home/steve/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,serversliveinterval=15,serveralivecountmax=3,allow_other,identityfile=/home/steve/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0
IMPORTANT : une barre oblique après le répertoire distant: steve@192.168.1.151: / home / steve /
sauvez / etc / fstab et ....
11. Redémarrage
Vous devriez maintenant pouvoir accéder au répertoire de la machine distante / home dans la machine locale / mnt / devboxhome. Dans Nautilus, vous pouvez faire glisser ce dossier dans la barre des emplacements.
12. répéter
Répétez les mêmes étapes sur la machine distante pour rendre le répertoire / home de la machine locale partagé.