tag:linuxfr.org,2005:/tags/sshfs/publicLinuxFr.org : les contenus étiquetés avec « sshfs »2021-08-10T22:42:03+02:00/favicon.pngtag:linuxfr.org,2005:Post/422932021-08-08T14:19:35+02:002021-08-08T14:19:35+02:00Dossier partagé entre deux GNU/Linux, simple et efficace ?<p>Bonjour,</p>
<p>Je cherche à partager un dossier sur un portable GNU/Linux (2 To en Raid 1), noyau peut-être "ancien" (je n’y ai pas facilement accès). L’autre ordinateur est un autre portable que je suis en train d’installer.</p>
<p>En définitive, les deux machines se trouveront chez mon beau-père, dans un réseau LAN Wi-Fi dont j’aimerais ne pas devoir m’occuper (DHCP, box-bidule, etc. + d’autres "enfants" et ma belle-mère utilisent des produits de marque Apple…).</p>
<p>Comment, sans être sûr des adresses IP attribuées, établir le lien ?</p>
<p>Il me semble qu’en SMB/CIF je pourrais utiliser NetBIOS pour "fixer" un nom de machine indépendant du DHCP/IP… Qu’en pensez-vous ?</p>
<pre><code>//ordiserver/donneesreseau /donnees/reseau cifs noauto,x-systemd.automount,x-systemd.mount-timeout=30,_netdev,sec=ntlmv2,guest,gid=1000,uid=1000,nobrl 0 0
</code></pre>
<p>Est-il possible de remplacer l’adresse IP d’un serveur NFS dans fstab par une adresse MAC ?</p>
<pre><code>192.168.10.174:/donnees/reseau /donnees/reseau nfs noauto,x-systemd.automount,x-systemd.mount-timeout=30,_netdev,users,rsize=4096,wsize=4096,hard,intr 0 0
</code></pre>
<p>Serait-ce une bonne idée d’utiliser sshfs ?</p>
<p>Merci d’avance.</p>
<div><a href="https://linuxfr.org/forums/linux-general/posts/dossier-partage-entre-deux-gnu-linux-simple-et-efficace.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/125083/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/linux-general/posts/dossier-partage-entre-deux-gnu-linux-simple-et-efficace#comments">ouvrir dans le navigateur</a>
</p>
Space_e_manhttps://linuxfr.org/nodes/125083/comments.atomtag:linuxfr.org,2005:Diary/369442016-11-01T23:59:54+01:002016-11-02T23:05:28+01:00[Tuto/HowTo] SSHFS : mises en place et montageLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<h2 class="sommaire">Sommaire</h2>
<ul class="toc">
<li>
<a href="#tutohowto-sshfs--mises-en-place-et-montage">[Tuto/HowTo] SSHFS : mises en place et montage</a><ul>
<li><a href="#pr%C3%A9sentation-rapide">Présentation rapide</a></li>
<li><a href="#farm-link">Farm Link</a></li>
<li>
<a href="#configurer-le-serveur-ssh">Configurer le serveur SSH</a><ul>
<li><a href="#installez-les-pr%C3%A9-requis">Installez les pré-requis</a></li>
<li><a href="#cr%C3%A9ez-un-utilisateur-d%C3%A9di%C3%A9">Créez un utilisateur dédié</a></li>
<li><a href="#g%C3%A9n%C3%A9rez-de-nouvelles-cl%C3%A9s-de-s%C3%A9curit%C3%A9-pour-lutilisateur-pr%C3%A9c%C3%A9demment-cr%C3%A9%C3%A9">Générez de nouvelles clés de sécurité pour l'utilisateur précédemment créé</a></li>
</ul>
</li>
<li>
<a href="#configurer-les-clients-gnulinux">Configurer le(s) client(s) GNU/Linux</a><ul>
<li><a href="#installez-les-pr%C3%A9-requis-1">Installez les pré-requis</a></li>
<li><a href="#si-vous-ne-lavez-jamais-fait-depuis-votre-installation-g%C3%A9n%C3%A9rez-de-nouvelles-cl%C3%A9s">Si vous ne l'avez jamais fait depuis votre installation, générez de nouvelles clés</a></li>
<li><a href="#exportez-votre-cl%C3%A9-publique-sur-le-serveur">Exportez votre clé publique sur le serveur</a></li>
<li><a href="#ajoutez-votre-utilisateur-%C3%A0-la-liste-des-utilisateurs-autoris%C3%A9s-%C3%A0-utiliser-fuse">Ajoutez votre utilisateur à la liste des utilisateurs autorisés à utiliser fuse</a></li>
<li><a href="#autoriser-les-autres-utilisateurs-%C3%A0-monter-un-dossier-avec-fusermount">Autoriser les autres utilisateurs à monter un dossier avec fusermount</a></li>
<li><a href="#connectez-vous-en-root-admin">Connectez-vous en root (admin)</a></li>
<li><a href="#g%C3%A9n%C3%A9rez-une-paire-de-cl%C3%A9s-solide-pour-root">Générez une paire de clés solide pour root</a></li>
<li><a href="#exportez-la-cl%C3%A9-publique-de-root-sur-la-machine-distante">Exportez la clé publique de root sur la machine distante</a></li>
<li><a href="#testez-si-lajout-a-bien-fonctionn%C3%A9-ne-doit-pas-demander-de-mot-de-passe">Testez si l'ajout a bien fonctionné (ne doit pas demander de mot de passe)</a></li>
<li><a href="#quittez-root">Quittez root</a></li>
</ul>
</li>
<li>
<a href="#montage-au-d%C3%A9marrage-sur-les-clients-via-fstab-et-hostname-fixe">Montage au démarrage sur le(s) client(s) via fstab et hostname fixe</a><ul>
<li><a href="#installez-les-pr%C3%A9-requis-2">Installez les pré-requis</a></li>
<li><a href="#cr%C3%A9er-le-point-de-montage-local-adaptez-%C3%A0-vos-envies">Créer le point de montage local (adaptez à vos envies)</a></li>
<li><a href="#accorder-les-bons-droits-%C3%A0-notre-point-de-montage">Accorder les bons droits à notre point de montage</a></li>
<li><a href="#%C3%89ditez-le-fichier-etcfstab-ctrlx-pour-sauverquitter">Éditez le fichier <em>/etc/fstab</em> (CTRL+X pour sauver&quitter)</a></li>
<li><a href="#ajoutez-le-montage-afin-de-le-monter-au-boot">Ajoutez le montage afin de le monter au boot</a></li>
<li><a href="#testez-votre-montage">Testez votre montage</a></li>
</ul>
</li>
<li>
<a href="#montage-au-d%C3%A9marrage-sur-les-clients-via-script-diy-compatible-cross-canal-lan-wan-tor">Montage au démarrage sur le(s) client(s) via script DIY compatible cross-canal (LAN, WAN, TOR)</a><ul>
<li><a href="#installez-les-pr%C3%A9-requis-3">Installez les pré-requis</a></li>
<li><a href="#cr%C3%A9er-le-point-de-montage-local-adaptez-le-%C3%A0-vos-envies">Créer le point de montage local (adaptez-le à vos envies)</a></li>
<li><a href="#accorder-les-bons-droits-%C3%A0-notre-point-de-montage-1">Accorder les bons droits à notre point de montage</a></li>
<li><a href="#cr%C3%A9ez-le-script">Créez le script</a></li>
<li><a href="#collez-le-code-suivant-en-ladaptant">Collez le code suivant en l'adaptant</a></li>
<li><a href="#rendez-le-script-ex%C3%A9cutable">Rendez le script exécutable</a></li>
<li><a href="#lancez-le-au-boot-en-%C3%A9ditant-etcrclocal">Lancez-le au boot en éditant /etc/rc.local</a></li>
<li><a href="#rendez-compatible-votre-client-ssh-avec-le-r%C3%A9seau-tor">Rendez compatible votre client SSH avec le réseau tor</a></li>
<li><a href="#testez-votre-montage-1">Testez votre montage</a></li>
</ul>
</li>
</ul>
</li>
</ul><h2 id="tutohowto-sshfs--mises-en-place-et-montage">[Tuto/HowTo] SSHFS : mises en place et montage</h2>
<h3 id="présentation-rapide">Présentation rapide</h3>
<p><a href="https://fr.wikipedia.org/wiki/Secure_shell_file_system">SSHFS</a> permet d'utiliser un <a href="https://doc.ubuntu-fr.org/ssh">serveur ssh</a> afin de monter des dossiers distants disponibles dans le système de fichier grâce à <a href="https://fr.wikipedia.org/wiki/Filesystem_in_Userspace">fuse</a>.<br>
Il ne nécessite côté serveur que openssh-server et côté client fuse openssh-client sshfs et éventuellement tor.<br>
N'hésitez pas à signaler toute erreur/faute.</p>
<p>Ce tuto est une mise en forme de ces deux-ci : <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=339&p=847#p847">[Tuto/HowTo] Configurer et monter SSHFS sécurisé via utilisateur dédié côté serveur</a> et <a href="https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=339&p=847#p893">[Tuto/HowTo] [GNU/Linux] Montage SSHFS cross-canal (Lan, Wan, Tor, etc)</a></p>
<h3 id="farm-link">Farm Link</h3>
<ul>
<li><a href="http://linux.die.net/man/8/adduser">Man Page adduser [EN]</a></li>
<li><a href="https://192.168.1.65/forum4/viewtopic.php?f=40&t=295">[Tuto/HowTo] [GNU/Linux] SSH</a></li>
<li><a href="https://192.168.1.65/forum4/viewtopic.php?f=68&t=288#p740">[Tuto/HowTo] Monter dossier distant sur Raspberry Pi & Ubuntu/Debian</a></li>
<li><a href="https://192.168.1.65/forum4/viewtopic.php?f=45&t=159">[Tuto/HowTo] Garder un contrôle discret sur son serveur avec tor et ssh</a></li>
<li><a href="http://www.linuxtricks.fr/wiki/autour-du-protocole-ssh-utiliser-le-canal-de-communication#paragraph_sshfs-systeme-de-fichiers-sur-ssh">LinuxTricks - Autour du protocole SSH, utiliser le canal de communication</a></li>
<li><a href="//linuxfr.org/users/elessar/journaux/sshfs-est-un-vrai-systeme-de-fichiers-en-reseau">LinuxFR Journal - SSHFS est un vrai système de fichiers en réseau</a></li>
</ul><h3 id="configurer-le-serveur-ssh">Configurer le serveur SSH</h3>
<h4 id="installez-les-pré-requis">Installez les pré-requis</h4>
<pre><code>sudo apt-get install tor openssh-server
</code></pre>
<h4 id="créez-un-utilisateur-dédié">Créez un utilisateur dédié</h4>
<pre><code>sudo adduser userCommunSFTP
</code></pre>
<h4 id="générez-de-nouvelles-clés-de-sécurité-pour-lutilisateur-précédemment-créé">Générez de nouvelles clés de sécurité pour l'utilisateur précédemment créé</h4>
<pre><code>su userCommunSFTP
ssh-keygen -t ed25519 -o -a 1666
ssh-keygen -t rsa -b 4096 -o -a 1666
</code></pre>
<h3 id="configurer-les-clients-gnulinux">Configurer le(s) client(s) GNU/Linux</h3>
<h4 id="installez-les-pré-requis-1">Installez les pré-requis</h4>
<pre><code>sudo apt-get install openssh-client sshfs fuse
</code></pre>
<h4 id="si-vous-ne-lavez-jamais-fait-depuis-votre-installation-générez-de-nouvelles-clés">Si vous ne l'avez jamais fait depuis votre installation, générez de nouvelles clés</h4>
<pre><code>ssh-keygen -t ed25519 -o -a 16669
ssh-keygen -t rsa -b 4096 -o -a 16669
</code></pre>
<p><strong>-o -a 100</strong> : permet de faire boucler l’algorithme 100 fois<br><strong>-b 4096</strong> : précise qu'on veut une clé à 4096 bits (au début des années 2k la France interdisait plus de 126 bit ;) )<br><strong>-t rsa</strong> : on utilise l’<a href="https://fr.wikipedia.org/wiki/Chiffrement_RSA">algorithme RSA</a><br><strong>-t ed25519</strong> : on utilise l'<a href="https://fr.wikipedia.org/wiki/EdDSA">algorithme EdDSA</a></p>
<h4 id="exportez-votre-clé-publique-sur-le-serveur">Exportez votre clé publique sur le serveur</h4>
<pre><code>ssh-copy-id -i ~/.ssh/id_ed25519.pub userCommunSFTP@adresseServerSSH
</code></pre>
<h4 id="ajoutez-votre-utilisateur-à-la-liste-des-utilisateurs-autorisés-à-utiliser-fuse">Ajoutez votre utilisateur à la liste des utilisateurs autorisés à utiliser fuse</h4>
<pre><code>sudo adduser $USER fuse
</code></pre>
<ul>
<li>
<strong>Note :</strong> remplacez $USER par l'utilisateur de votre choix (par défaut $USER = votre utilisateur courant (celui qui a ouvert la session sur votre machine)). Sur Raspberry Pi cette commande peut échouer sans que cela ne pose problème.</li>
</ul><h4 id="autoriser-les-autres-utilisateurs-à-monter-un-dossier-avec-fusermount">Autoriser les autres utilisateurs à monter un dossier avec fusermount</h4>
<pre><code>sudo nano /etc/fuse.conf
</code></pre>
<ul>
<li>Décommentez (enlevez le # devant) <strong>user_allow_other</strong> puis tapez <strong>CTRL+X</strong> pour sauver et quitter.</li>
</ul><p><strong>Pour effectuer le montage SSHFS au démarrage il est fort possible que la machine passe par root.</strong></p>
<h4 id="connectez-vous-en-root-admin">Connectez-vous en root (admin)</h4>
<pre><code>sudo su
</code></pre>
<h4 id="générez-une-paire-de-clés-solide-pour-root">Générez une paire de clés solide pour root</h4>
<pre><code>ssh-keygen -t rsa -b 4096 -o -a 16666
ssh-keygen -t ed25519 -o -a 16666
</code></pre>
<ul>
<li>La deuxième (ed25519) ne fonctionne pas sur Raspberry Pi</li>
</ul><h4 id="exportez-la-clé-publique-de-root-sur-la-machine-distante">Exportez la clé publique de root sur la machine distante</h4>
<pre><code>ssh-copy-id -i /root/.ssh/id_rsa.pub userCommunSFTP@adresseServerSSH
</code></pre>
<h4 id="testez-si-lajout-a-bien-fonctionné-ne-doit-pas-demander-de-mot-de-passe">Testez si l'ajout a bien fonctionné (ne doit pas demander de mot de passe)</h4>
<pre><code>ssh userCommunSFTP@adresseServerSSH
</code></pre>
<h4 id="quittez-root">Quittez root</h4>
<pre><code>exit
</code></pre>
<h3 id="montage-au-démarrage-sur-les-clients-via-fstab-et-hostname-fixe">Montage au démarrage sur le(s) client(s) via fstab et hostname fixe</h3>
<h4 id="installez-les-pré-requis-2">Installez les pré-requis</h4>
<pre><code>sudo apt-get install openssh-client
</code></pre>
<h4 id="créer-le-point-de-montage-local-adaptez-à-vos-envies">Créer le point de montage local (adaptez à vos envies)</h4>
<pre><code>sudo mkdir /media/monPointDeMontageLocal
</code></pre>
<h4 id="accorder-les-bons-droits-à-notre-point-de-montage">Accorder les bons droits à notre point de montage</h4>
<ul>
<li>Spécifiez les propriétaires</li>
</ul><pre><code>sudo chown root:$USER -R /media/monPointDeMontageLocal
</code></pre>
<ul>
<li><p><strong>Note :</strong> $USER = votre utilisateur courant par défaut, changez si besoin</p></li>
<li><p>Spécifiez aussi les droits d'accès des propriétaires</p></li>
</ul><pre><code>sudo chmod 770 -R /media/monPointDeMontageLocal
</code></pre>
<ul>
<li>Note : si vous souhaitez que le montage soit accessible à tous vos utilisateurs systèmes remplacez 770 par 774 pour lecture uniquement ou 777 s'ils (tous les utilisateurs) peuvent avoir les mêmes droits que votre utilisateur principal sur ce point de montage. ( voir <a href="https://fr.wikipedia.org/wiki/Chmod#Modes">chmod</a> )</li>
</ul><h4 id="Éditez-le-fichier-etcfstab-ctrlx-pour-sauverquitter">Éditez le fichier <em>/etc/fstab</em> (CTRL+X pour sauver&quitter)</h4>
<pre><code>sudo nano /etc/fstab
</code></pre>
<h4 id="ajoutez-le-montage-afin-de-le-monter-au-boot">Ajoutez le montage afin de le monter au boot</h4>
<pre><code>userCommunSFTP@adresseServerSSH:/home/userCommunSFTP/ /media/monPointDeMontageLocal fuse.sshfs port=22,user,noatime,reconnect,_netdev,nofail,allow_other 0 0
</code></pre>
<ul>
<li>
<strong>Note :</strong> <em>:/dossier/distant/</em> n'est pas obligatoire ; <em>nofail</em> permet d'empêcher le boot de crasher si le montage ne réussit pas, _<em>netdev</em> ordonne d'attendre que le réseau soit fonctionnel avant d'effectuer le montage; <em>allow_other</em> autorise les autres utilisateurs à monter le dossier. Ajoutez <em>noauto</em> si vous voulez que le montage ne s'effectue qu'à la demande et non au démarrage de la machine.</li>
</ul><h4 id="testez-votre-montage">Testez votre montage</h4>
<pre><code>sudo mount /media/monPointDeMontageLocal
</code></pre>
<h3 id="montage-au-démarrage-sur-les-clients-via-script-diy-compatible-cross-canal-lan-wan-tor">Montage au démarrage sur le(s) client(s) via script DIY compatible cross-canal (LAN, WAN, TOR)</h3>
<h4 id="installez-les-pré-requis-3">Installez les pré-requis</h4>
<pre><code>sudo apt-get install openssh-client tor
</code></pre>
<h4 id="créer-le-point-de-montage-local-adaptez-le-à-vos-envies">Créer le point de montage local (adaptez-le à vos envies)</h4>
<pre><code>sudo mkdir /media/monPointDeMontageLocal
</code></pre>
<h4 id="accorder-les-bons-droits-à-notre-point-de-montage-1">Accorder les bons droits à notre point de montage</h4>
<ul>
<li>Spécifiez les propriétaires</li>
</ul><pre><code>sudo chown root:$USER -R /media/monPointDeMontageLocal
</code></pre>
<ul>
<li><p><strong>Note :</strong> $USER = votre utilisateur courant par défaut, changez si besoin</p></li>
<li><p>Spécifiez aussi les droits d'accès des propriétaires</p></li>
</ul><pre><code>sudo chmod 770 -R /media/monPointDeMontageLocal
</code></pre>
<ul>
<li>
<strong>Note :</strong> si vous souhaitez que le montage soit accessible à tous vos utilisateurs système remplacez 770 par 774 pour lecture uniquement ou 777 s'ils (tous les utilisateurs) peuvent avoir les mêmes droits que votre utilisateur principal sur ce point de montage. ( voir chmod )</li>
</ul><h4 id="créez-le-script">Créez le script</h4>
<pre><code>sudo nano /opt/scripts/mountSSHFS.sh
</code></pre>
<h4 id="collez-le-code-suivant-en-ladaptant">Collez le code suivant en l'adaptant</h4>
<pre><code>#!/bin/bash
#licence WTFPL - script infos : https://www.0rion.netlib.re/forum4/viewtopic.php?f=68&t=339&p=893#p893
#github : https://github.com/voxdemonix/divers-script/blob/master/mountSSHFS_crosscanal.sh
#work on raspbian, ubuntu, debian and possibly Arch
if [ ! "$SUDO_USER" ]; then
echo "i need root => $0"
exit 0
fi
sleep 60 # petit délai d'attente afin que le réseau soit prêt
IpServerLocale="192.168.1.42" # server IP LAN
AdresseServerOnion="blablablablabla1.onion" # tor hidden service OR Hostname WAN
MacServerLocale="00:00:00:00:00:00" #l'adresse mac du serveur SSH (tapez ifconfig dans un terminal sur votre server pour la voir)
UserRemoteForSsh="user_sur_server" # l'utilisateur à utiliser côté serveur ( /!\ n'utilisez jamais root !)
port="22" # le port sur le server
monPointDeMontageLocal="/media/monPointDeMontageLocal"
monPointDeMontageDistant="/home/user_sur_serveur/"
umount $monPointDeMontageLocal -f >> /dev/null 2>&1
ping $IpServerLocale -c 1 >> /dev/null 2>&1
macRecover=$(arp -n | grep -i -o $MacServerLocale)
if [ "$macRecover" == "$MacServerLocale" ]; then
sshfs -o allow_other -o reconnect -o ServerAliveInterval=15 $UserRemoteForSsh@$IpServerLocale:$monPointDeMontageDistant $monPointDeMontageLocal -p $port -C
else
sshfs -o allow_other -o reconnect -o ServerAliveInterval=15 $UserRemoteForSsh@$AdresseServerOnion:$monPointDeMontageDistant $monPointDeMontageLocal -p $port -C
fi
</code></pre>
<ul>
<li>
<strong>IpServerLocale="192.168.1.42"</strong> => l'adresse IP LAN de votre serveur</li>
<li>
<strong>AdresseServerOnion="blablablablabla1.onion"</strong> => l'hostname de votre serveur. Au choix un Tor Hidden Service, une IP WAn ou un Hostname WAN (exemple.com)</li>
<li>
<strong>MacServerLocale="00:00:00:00:00:00"</strong> => l'adresse MAC de votre server (tapez ifconfig sur votre serveur pour la voir)</li>
<li>
<strong>UserRemoteForSsh="user_sur_server"</strong> => utilisateur sur le serveur SSH à utiliser pour la connexion</li>
<li>
<strong>port="22"</strong> => le port d'écoute du serveur ssh (par défaut 22)</li>
<li>
<strong>monPointDeMontageLocal="/media/monPointDeMontageLocal"</strong> => où rendre disponible le montage sur votre client</li>
<li>
<strong>monPointDeMontageDistant="/home/user_sur_server/"</strong> => Le dossier sur le serveur à partir du quel effectuer le montage</li>
</ul><h4 id="rendez-le-script-exécutable">Rendez le script exécutable</h4>
<pre><code>sudo chmod +x /opt/scripts/mountSSHFS.sh
</code></pre>
<h4 id="lancez-le-au-boot-en-éditant-etcrclocal">Lancez-le au boot en éditant /etc/rc.local</h4>
<pre><code>sudo nano /etc/rc.local
</code></pre>
<ul>
<li>Et ajoutez la ligne suivante <strong>avant "exit 0"</strong> ###</li>
</ul><pre><code>sudo /opt/scripts/mountSSHFS.sh
</code></pre>
<h4 id="rendez-compatible-votre-client-ssh-avec-le-réseau-tor">Rendez compatible votre client SSH avec le réseau tor</h4>
<pre><code>sudo nano /etc/ssh/ssh_config
</code></pre>
<ul>
<li>Et collez les lignes suivantes puis tapez <strong>CTRL+X</strong> pour sauver&quitter</li>
</ul><pre><code> Host *.onion
ProxyCommand nc -xlocalhost:9050 -X5 %h %p
</code></pre>
<h4 id="testez-votre-montage-1">Testez votre montage</h4>
<pre><code>sudo /opt/scripts/mountSSHFS.sh
</code></pre><div><a href="https://linuxfr.org/users/eaufroide/journaux/tuto-howto-sshfs-mises-en-place-et-montage.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/110420/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/eaufroide/journaux/tuto-howto-sshfs-mises-en-place-et-montage#comments">ouvrir dans le navigateur</a>
</p>
EauFroidehttps://linuxfr.org/nodes/110420/comments.atomtag:linuxfr.org,2005:Diary/360722015-08-28T11:37:30+02:002015-08-28T11:37:30+02:00SSHFS est un vrai système de fichiers en réseauLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<p>Cher journal,</p>
<p>Comme tu dois le savoir, il y a (au moins) deux façons générales d'accéder à des fichiers à distance :</p>
<ul>
<li>les protocoles de transfert de fichiers, tels que FTP ou HTTP ;</li>
<li>les systèmes de fichier en réseau, tels que SMB/CIFS et NFS.</li>
</ul><p>La différence, c'est qu'un protocole de transfert sert… à transférer des fichiers, évidemment, tandis qu'un système de fichiers en réseau permettra des choses comme l'ouverture de fichiers, la lecture à une position arbitraire, l'écriture (sans tout envoyer), le renommage ou encore le verrouillage. Certains protocoles de transfert disposent de telles fonctionnalité, mais rarement de façon complète.</p>
<p>Sur SSH, on peut manipuler des fichiers :</p>
<ul>
<li>par SCP, qui à ce qu'il me semble, transfère des fichiers en lançant par SSH des commandes telles que cat ;</li>
<li>par SFTP, un protocole spécifiquement développé pour SSH, dont il constitue un <em>module</em>.</li>
</ul><p>Le nom SFTP laisse penser qu'il s'agit d'un protocole de transfert de fichiers, mais je viens de me rendre compte qu'il n'en était rien : ce protocole a été <a href="https://tools.ietf.org/html/draft-ietf-secsh-filexfer#section-1">conçu pour pouvoir être utilisé aussi bien</a> pour les transfert de fichiers, typiquement, avec un logiciel client comme sftp, avec lequel on fait des choses comme <code>get</code> et <code>put</code>, ou pour servir de système de fichiers en réseau, typiquement pour effectuer un montage avec un pilote comme <a href="http://fuse.sourceforge.net/sshfs.html">sshfs</a>.</p>
<p>Par conséquent, si vous êtes amenés à chercher un moyen d'accéder à vos fichiers en réseau local, autrement qu'en les transférant de machine en machine, ne vous laissez pas tromper par le nom d'sshfs et surtout du protocole SFTP qu'il utilise, vous pouvez le considérer comme une option sérieuse, au même titre que NFS ou CIFS !</p><div><a href="https://linuxfr.org/users/elessar/journaux/sshfs-est-un-vrai-systeme-de-fichiers-en-reseau.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/106620/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/users/elessar/journaux/sshfs-est-un-vrai-systeme-de-fichiers-en-reseau#comments">ouvrir dans le navigateur</a>
</p>
🚲 Tanguy Ortolohttps://linuxfr.org/nodes/106620/comments.atomtag:linuxfr.org,2005:News/360942015-02-03T08:13:26+01:002015-02-03T09:30:57+01:00Se passer de Dropbox en montant son coffre-fort numérique à la maisonLicence CC By‑SA http://creativecommons.org/licenses/by-sa/4.0/deed.fr<div><p>Se passer de Dropbox en montant son coffre-fort numérique à la maison, pour moins cher qu'un LaCie, Pour cette recette il vous faut</p>
<ul>
<li>un mini-ordinateur silencieux (OlinuXIuno par exemple, 45 €)</li>
<li>un petit routeur-wifi (le boitier ADSL de votre opérateur fait l'affaire)</li>
<li>2 x 2 To de disque dur en SATA (du gros plateau qui gratte, c'est moins cher)</li>
<li>un socle USB avec deux emplacement SATA (30 €)</li>
<li>une connexion Internet</li>
<li>votre ordinateur de travail, et éventuellement celui d'un second utilisateur</li>
</ul><p><strong>Temps de préparation</strong> : 1h<br><strong>Temps de cuisson</strong> : 2 jours pour la synchronisation initiale des disques<br><strong>Coût de revient</strong> : 50 % du prix d'un boîtier commercial et propriétaire de même capacité</p></div><ul><li>lien nᵒ 1 : <a title="https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/open-source-hardware" hreflang="en" href="https://linuxfr.org/redirect/92979">OlinuXIno LIME2</a></li><li>lien nᵒ 2 : <a title="http://www.guiguishow.info/2013/09/07/auto-hebergement-sur-olinuxino/" hreflang="fr" href="https://linuxfr.org/redirect/92980">GuiGui' Show - Auto-hébergement sur OLinuXino</a></li><li>lien nᵒ 3 : <a title="http://doc.ubuntu-fr.org/raid_logiciel" hreflang="fr" href="https://linuxfr.org/redirect/92981">Documentation Ubuntu-fr : raid logiciel</a></li><li>lien nᵒ 4 : <a title="http://doc.ubuntu-fr.org/cryptsetup" hreflang="fr" href="https://linuxfr.org/redirect/92982">Documentation Ubuntu-fr : cryptsetup</a></li><li>lien nᵒ 5 : <a title="http://doc.ubuntu-fr.org/sshfs" hreflang="fr" href="https://linuxfr.org/redirect/92983">Documentation Ubuntu-fr : sshfs</a></li></ul><div><h2 id="la-recette">La recette</h2>
<h3 id="commandez-un-olinuxino-par-exemple-le-lime2-ou-autre-cubieboard-arduino-raspberry-pi">Commandez un <a href="https://fr.wikipedia.org/wiki/OLinuXino" title="Définition Wikipédia">OLinuXino</a>, par exemple le <a href="https://www.olimex.com/Products/OLinuXino/A20/A20-OLinuXIno-LIME2/open-source-hardware">LIME2</a>, ou autre (cubieboard, arduino, raspberry PI…)</h3>
<p>Avec éventuellement, une batterie, et une carte mémoire pré-configurée avec un système Debian dessus…</p>
<h3 id="ajoutez-y-un-socle-usb-pour-deux-disques-dur-sata">Ajoutez-y un socle USB pour deux disques dur SATA</h3>
<h3 id="préparez-lolinuxino-en-mode-serveur-web-comme-détaillé-ici-par-guigui">Préparez l'OlinuXIno en mode serveur web comme détaillé <a href="http://www.guiguishow.info/2013/09/07/auto-hebergement-sur-olinuxino/">ici par GuiGui</a>
</h3>
<p>Et surtout, changer les mots de passe par défaut des utilisateurs.</p>
<h3 id="partitionnez-et-assemblez-les-deux-disques-en-raid-1">Partitionnez et assemblez les deux disques en RAID 1</h3>
<p><code>sudo cfdisk /dev/sda # créer une partition de toute la taille, de type 0xfd</code></p>
<p>Idem pour <code>/dev/sdb</code>. En cas de besoin, une documentation est disponible en français : <a href="http://doc.ubuntu-fr.org/raid_logiciel">http://doc.ubuntu-fr.org/raid_logiciel</a></p>
<h3 id="créez-le-tableau-raid1">Créez le tableau RAID1</h3>
<p><code>sudo mdadm --create /dev/md0 --level=1 --raid-disks=2 /dev/sda1 /dev/sdb1</code></p>
<h3 id="chiffrez-le-tout">Chiffrez le tout</h3>
<p><code>sudo cryptsetup luksFormat -c aes-xts-plain64 -s 512 -h sha512 /dev/md0</code></p>
<p>Il faut bien retenir le mot de passe qu'on choisi là. En cas de besoin, une documentation plus détaillée est disponible en français ici : <a href="http://doc.ubuntu-fr.org/cryptsetup">http://doc.ubuntu-fr.org/cryptsetup</a></p>
<h3 id="ouvrez-formatez-et-montez-le-disque">Ouvrez, formatez et montez le disque</h3>
<p><code>sudo cryptsetup luksOpen /dev/md0 luks-md0</code><br><code>sudo mkfs.ext4 /dev/mapper/luks-md0</code><br><code>sudo mkdir /mnt/md0</code><br><code>sudo echo "/dev/mapper/luks-md0 /mnt/md0 auto default 0 1" >> /etc/fstab</code><br><code>mount /mnt/md0</code></p>
<h3 id="Émincez-votre-boîtier-modemrouteur-adsl-grossièrement">Émincez votre boîtier modem/routeur ADSL grossièrement</h3>
<p>Pour rediriger le port 22 (ou 443 au choix) vers l'OlinuXIno.</p>
<h3 id="configurez-votre-machine">Configurez votre machine</h3>
<h4 id="au-moulin-à-fstab">Au moulin à <code>fstab</code>
</h4>
<p>Pour vous pour monter localement le répertoire de votre OlinuXIno via sshfs :<br><code>sudo echo "sshfs#$USER@oli:/mnt/md0 /mnt/oli fuse defaults,users,noauto 0 0" >> /etc/fstab</code></p>
<p>Remplacez <code>$USER</code> par ce que vous avez en cuisine.</p>
<p>En cas de besoin, une documentation plus détaillée est disponible en français ici : <a href="http://doc.ubuntu-fr.org/sshfs">http://doc.ubuntu-fr.org/sshfs</a></p>
<h4 id="ajoutez-une-pincée-detchosts">Ajoutez une pincée d'/etc/hosts</h4>
<p><code>sudo echo "XXX.XXX.XXX.XXX oli" >> /etc/hosts</code></p>
<p>Pour qu' « oli » pointe vers l'IP publique du boîtier ADSL.</p>
<h3 id="et-cest-prêt">Et c'est prêt !</h3>
<p>Maintenant, depuis n'importe quelle connexion Internet, en tapant : <code>mount /mnt/oli</code> vous pouvez enfourner vos données dans votre coffre-fort numérique, distant, chez vous, chiffré, redondé.</p>
<p>En ajoutant un nouvel utilisateur sur l'OlinuXIno, vous voilà avec du partage de fichiers sécurisés "à la Dropbox". Z'avez plus qu'à jouer finement sur les droits d'accès.</p>
<p>Le prochain épisode expliquera, pour le dessert, comment configurer votre serveur domestique personnel en <em>seedbox</em> pour soigner votre ratio Bittorrent !</p>
<h3 id="ps">PS</h3>
<p>Un petit :<br><code>sudo echo "Host oli\n\tPort 443" >> /etc/ssh/ssh_config</code></p>
<p>Dans le /etc/ssh/ssh_config, permet de passer par le port 443, celui du HTTPS sensé être accessible partout…</p>
<h3 id="pps">PPS</h3>
<p>J'ai eu la meme préoccupation il a y quelques années, et c'était un poil moins simple : <a href="http://s.d12s.fr/realisations/tutos/Debian_sftp_chroot.html">http://s.d12s.fr/realisations/tutos/Debian_sftp_chroot.html</a></p>
<h3 id="bonus">Bonus</h3>
<p>Pour s'assurer qu'un utilisateur n'a accès au serveur domestique qu'en SFTP, et à un sous répertoire précis (son bac à sable) :</p>
<pre><code class="sh">sudo usermod -s /usr/lib/sftp-server user2
sudo <span class="nb">echo</span> <span class="s1">'/usr/lib/sftp-server'</span> >> /etc/shells</code></pre>
<p>Le dossier de l'utilisateur doit appartenir à root:root</p>
<pre><code class="sh">sudo mkdir /mnt/md1/user2</code></pre>
<p>L'utilisateur viendra ecrire la dedans, le dossier doit lui appartenir : </p>
<pre><code class="sh">sudo mkdir /mnt/md1/user2/ecriture
sudo chown user2.user2 /mnt/md1/user2/ecriture</code></pre>
<p>il faut maintenant configurer ssh pour verrouiller l'utilisateur dans son dossier :</p>
<pre><code class="sh">sudo <span class="nb">echo</span> <span class="s2">"Subsystem sftp /usr/lib/openssh/sftp-server\n\tChrootDirectory /mnt/md1/%u\n\tX11Forwarding no\n\tAllowTcpForwarding no\n\tForceCommand internal-sftp"</span> >> /etc/ssh/sshd_config</code></pre>
<p>Pour partager entre tous les utilisateurs du serveur domestique :</p>
<pre><code class="sh">sudo mkdir /mnt/md1/user2/partage <span class="c"># (pour partager entre utilisateurs)</span>
sudo chmod <span class="m">777</span> /mnt/md1/user2/partage
sudo <span class="nb">echo</span> <span class="s2">"/mnt/md1/partage /mnt/md1/user2/partage none defaults,rbind 0 0"</span> >> /etc/fstab</code></pre>
<p>Si on souhaite partager tout le disque, mais en lecture seule, de manière récursive dans un sous répertoire, il est possible de faire :</p>
<pre><code class="sh">sudo mkdir /mnt/md1/user2/tout-le-disque-en-lecture-seule <span class="c"># (l'utilisateur pourra voir le reste du disque là)</span>
sudo <span class="nb">echo</span> <span class="s2">"bindfs#/mnt/md1 /mnt/md1/pressecitron/oli-lecture-seule fuse perms=a=rX 0 0"</span> >> /etc/fstab</code></pre>
<p>Dans tous les cas, sur l'ordinateur d'user2, il faut encore au moins :<br>
- configurer <code>/etc/hosts</code> pour qu'oli existe<br>
- s'assurer que : <code>sudo apt-get install fuse</code><br>
- créer le dossier « oli » local : <code>sudo mkdir /mnt/oli</code><br>
- et configurer <code>/etc/fstab/</code> avec<br><code>sudo echo "sshfs#$USER@oli:/ /mnt/oli fuse defaults,users,noauto 0 0" >> /etc/fstab</code></p></div><div><a href="https://linuxfr.org/news/se-passer-de-dropbox-en-montant-son-coffre-fort-numerique-a-la-maison.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/104659/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/news/se-passer-de-dropbox-en-montant-son-coffre-fort-numerique-a-la-maison#comments">ouvrir dans le navigateur</a>
</p>
SiltaärNÿcoBenoît SibaudNeoXbubar🦥https://linuxfr.org/nodes/104659/comments.atomtag:linuxfr.org,2005:Post/322452013-01-21T19:17:45+01:002013-01-21T19:17:45+01:00Transfert ssh<p>Bonjour à tous et à toutes !</p>
<p>J'ai une petite question bien carabinée, si jamais un "barbu" connaît la réponse….</p>
<p>Je possède un nas (synology), un pc portable tournant sous opensuse et un pc fixe tournant sous linux mint.</p>
<p>Le tranfert en ssh de suse vert mint se fait à une vitesse moyenne de 40 Mo/s mais de suse vers le nas, le transfert se fait à 5Mo/s….. </p>
<p>Quelqu'un pourrait m'expliquer pourquoi et me dire comment y remédier ?</p>
<p>En vous remerciant par avance. </p><div><a href="https://linuxfr.org/forums/linux-suse/posts/transfert-ssh.epub">Télécharger ce contenu au format EPUB</a></div> <p>
<strong>Commentaires :</strong>
<a href="//linuxfr.org/nodes/97140/comments.atom">voir le flux Atom</a>
<a href="https://linuxfr.org/forums/linux-suse/posts/transfert-ssh#comments">ouvrir dans le navigateur</a>
</p>
rootvl69https://linuxfr.org/nodes/97140/comments.atom