58 votes

Comment partager un dossier avec une autre machine Linux sur le même réseau domestique ?

J'essaie de partager un dossier sur une machine Ubuntu avec une autre machine Ubuntu sur le même réseau domestique. Lorsque je clique avec le bouton droit de la souris sur le dossier et que je choisis Options de partage, le système me dit que je dois installer les services de partage réseau de Windows pour pouvoir partager des dossiers. Qu'est-ce que Windows a à voir avec cela ? Je n'essaie pas de partager avec une machine Windows...

32voto

andybee Points 497

Qu'est-ce que Windows a à voir avec avec ça ? Je n'essaie pas de partager avec une machine Windows...

Vous avez raison, ça peut être déroutant. Laissez-moi donc essayer de clarifier les termes avant tout :

La façon dont Windows partage les fichiers et les imprimantes est appelée SMB . Les personnes de la SAMBA ont mis en œuvre tous les protocoles et spécifications de Microsoft pour Linux. Ubuntu supporte donc le même type de partage de fichiers que Windows, qui s'appelle Samba.

  • Vous pouvez utiliser SAMBA pour partager des fichiers entre des machines Linux. En fait, vous pourriez le préférer si, par exemple, vous recevez un ami avec son ordinateur Windows.

  • Alternativement, vous pouvez utiliser La méthode Linux de partage de fichiers, qui est NFS (Network File System) - Cette réponse à une question précédente explique comment procéder. (mais c'est plutôt technique)

Ainsi, lorsque la boîte de dialogue Options de partage vous demande d'installer les paquets, vous n'installez en fait aucun logiciel Microsoft ni rien de tel. Allez-y et faites-le, c'est parfaitement sûr.

Addendum :

Vous pouvez essayer de simplement activer le partage avant de suivre les instructions de Salih Emin ; si cela ne fonctionne pas, vous obtiendrez un simple avertissement, vous pourrez ensuite suivre les étapes décrites par Salih si nécessaire. Je l'ai essayé sur un système fraîchement installé et mis à jour, et j'ai effectivement eu besoin de faire cela.

11voto

zx81roadkill Points 176

Je trouve que SSHFS est natif, stable et extrêmement rapide. J'ai deux machines xubuntu (18.04) partageant des dossiers /home et un Intel NUC comme clé USB 'dropbox'. Tout est en SSHFS.

MISE À JOUR 2020-07-12 : J'ai trouvé SSHFS pour Windows. Une belle interface graphique propre, zéro configuration et fonctionne avec les clés SSH de linux-machines.

Voici comment procéder sshfs et de se reconnecter automatiquement après un redémarrage en utilisant fstab sans avoir à fournir de mot de passe. Un grand merci à défaut de serveur utilisateur kubanczyk pour savoir comment se reconnecter après une suspension/reprise à distance.

Je vais utiliser "Local machine - surfbox" pour l'ordinateur à partir duquel vous vous connectez, et "Remote machine - devbox" pour l'ordinateur auquel vous vous connectez.

Vérifiez votre userID och groupID, ils devraient tous les deux être 1000.

GroupID : id -g localuser ID utilisateur : 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 les paquets sur les machines locales et distantes

sudo apt install sshfs fuse ssh

3. Créer un groupe fuse et ajouter localuser à celui-ci

Créer un groupe : sudo groupadd fuse

Ajouter l'utilisateur local au groupe : sudo usermod -a -G fuse $user

4. Activez "allow_other" dans la configuration du fusible.

Nous aurons besoin de cette option lors du montage dans fstab

Modifier /etc/fuse.conf avec votre éditeur de ligne de commande. Enlevez le hashtag avant user_allow_other et sauvegarder.

5. Générer les clés SSH sur la machine locale

Ne fournissez pas de mot de passe lorsque vous y êtes invité . Il suffit d'appuyer sur la touche Entrée pour laisser le champ vide.

ssh-keygen -t rsa -C youremail@example.com

Les clés sont stockées dans le répertoire personnel de la machine locale / dossier .ssh

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

Vous serez invité à saisir le mot de passe de l'utilisateur distant sur la machine distante. La clé publique de la machine locale est maintenant ajoutée au fichier ~/.ssh/authorized_keys de la machine distante.

7. Créez un répertoire sur le dossier /mnt de la machine locale où vous monterez le dossier /home de la machine distante.

Choisissez n'importe quel nom qui a du sens pour votre machine distante.

sudo mkdir /mnt/devboxhome

8. Montez le répertoire /home de la machine distante à partir du terminal.

La syntaxe de 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

Puisque vous avez transféré la clé RSA publique à la machine distante, le mot de passe de l'utilisateur distant ne devrait pas vous être demandé.

Vous obtiendrez un avertissement indiquant que la machine n'est pas fiable et un message vous demandant si elle doit être ajoutée. Ajoutez la machine distante en tant que machine de confiance.

9. Vérifier : Parcourir le répertoire /home de la machine distante

Dans le terminal de la machine locale, vous pouvez maintenant afficher le répertoire /home de la machine distante sous /mnt/devboxhome.

cd /mnt/devboxhome ls

ou utilisez Nautilus pour parcourir le répertoire. Super.

10. Activer la reconnexion après un redémarrage

Nous allons ajouter une entrée dans /etc/fstab pour que cela se produise. Vous aurez besoin de votre identifiant de machine locale et de votre identifiant de groupe - voir l'intro si vous avez manqué cela. Editez /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,ServerAliveInterval=15,ServerAliveCountmax=3,allow_other,identityfile=/home/[localuser]/.ssh/id_rsa,idmap=user,uid=1000,gid=1000 0 0

  • delay_connect fait que le noyau attend que le réseau soit en place avant d'essayer de monter le répertoire sur la machine distante.
  • Puisque nous fonctionnons en tant que root pendant le démarrage, nous devons spécifier l'adresse de l'utilisateur. fichier clé qui est stocké dans le répertoire personnel de l'utilisateur local.
  • autoriser_autre - les utilisateurs autres que celui qui effectue le montage peuvent accéder au système de fichiers monté.
  • idmap=utilisateur - traduire uniquement l'UID de l'utilisateur qui se connecte
  • reconnexion, ServerAliveInterval, ServerAliveCountMax - ssh envoie des pings "keep-alive". Si ServerAliveCountMax si les pings consécutifs échouent, reconnectez-vous.

Un utilisateur se connectant en tant que Steve sur les machines locales et distantes aurait :

steve@192.168.1.151:/home/steve/ /mnt/devboxhome fuse.sshfs default_permissions,user,delay_connect,reconnect,ServerAliveInterval=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/

sauvegarder /etc/fstab et ....

11. Redémarrer

Vous devriez maintenant être en mesure d'accéder au répertoire /home de la machine distante dans la machine locale /mnt/devboxhome Dans Nautilus, vous pouvez faire glisser ce dossier dans la barre des lieux.

12. Répétez

Répétez les mêmes étapes sur la machine distante pour rendre le répertoire /home de la machine locale partagé.

8voto

Ben Scofield Points 4950

Actuellement, il existe un petit bogue dans Lucid qui est répertorié dans Launchpad : bug #536766 . Ce bogue n'invite pas l'utilisateur à installer les paquets nécessaires à la mise en place du partage de fichiers. En attendant que ce problème soit résolu, voici une solution de contournement rapide.

Vous devez installer libapache2-mod-dnssd et redémarrer. Cliquez sur ce lien pour l'installer, ou trouvez libapache2-mod-dnssd dans le Centre des logiciels.

Une fois que vous l'avez installé, rendez-vous sur Préférences système Partage de fichiers personnels et cochez la case "Partager les fichiers publics sur le réseau".

alt text

Une fois que c'est fait, vous devriez être en mesure de voir tous les autres ordinateurs de votre réseau qui ont autorisé le partage de fichiers publics dans le dossier Public. Il suffit de cliquer sur Réseau des lieux et vous devriez voir tous les ordinateurs disponibles et leurs dossiers publics partagés.

En double-cliquant sur l'icône du serveur, vous monterez le dossier public correspondant sur votre bureau.

Via texte du lien

7voto

John Points 189

Vous pouvez simplement exécuter un serveur simpleHTTP sur la machine linux et accéder à la même chose sur l'autre machine.

Étapes :

  1. démarrez d'abord le terminal à partir du dossier à partager.
  2. exécuter dans le terminal - python -m SimpleHTTPServer
  3. vérifiez votre ip en utilisant ifconfig .
  4. entrez dans le navigateur de l'autre machine l'adresse ip:8000 (ex : si votre ip est 127.3.4.123 alors dans le navigateur vous tapez 127.3.4.123:8000)

Vous obtenez les fichiers requis dans le dossier à télécharger.

4voto

Ben Points 10335

Si vous voulez une intégration transparente dans Ubuntu, et que la compatibilité avec Windows ne vous intéresse pas, SSH est votre porte-bonheur.

Véase Comment puis-je partager des fichiers entre deux machines Linux sur un réseau local ?

Vous devrez peut-être installer le serveur SSH avec :

sudo apt-get install openssh-server

Depuis l'application de gestion de fichiers sur votre client, vous pouvez accéder à votre serveur avec :

sftp://servername.local

Pour accéder aux fichiers à partir d'un terminal ou de manière programmée, utilisez sshfs pour créer un point de montage dans le système de fichiers du client.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X