Services et serveurs

SSH : utiliser le canal de communication (SFTP et SSHFS)

Table des matières

tunnel_ssh



Présentation



SSH avec le module openSSH est un programme informatique.

Il en résulte aussi que SSH est un protocole de connexion sécurisé.

Il est possible d'utiliser la connexion sécurisée SSH pour transférer des fichiers avec un client FTP, synchroniser des fichiers par exemple.


Autour de SSH, que pouvons-nous faire ?



SFTP, le FTP sur SSH




Présentation



SFTP, tout comme SSH est un programme informatique mais aussi un protocole.

SFTP comme SecureShell File Transfert Protocol.

L'avantage du SFTP est la sécurisation du transfert de fichiers, puisque avec FTP, les données transitent en clair.

Seul un serveur SSH doit être installé sur la machine distante et seul le port 22 a besoin d'être ouvert.

Configuration de FileZilla



Le logiciel FileZIlla supporte le SFTP. Pour le configurer, il faut ouvrir le gestionnaire de sites, et créer un nouveau site en précisant bien que l'on utilise le protocole SFTP

On renseigne l'hôte et le nom d'utilisateur.

Compléter le champ Port si le serveur SSH n'écoute pas sur son port par défaut, c'est à dire 22.

Voici un exemple de configuration, si on souhaite se connecter au site monsite.com avec l'utilisateur monutilisateur.

sftp_gestionnaire_site



Il faut compléter avec un système clés privées, clés publiques SSH !


Chrooter un utilisateur



Par défaut, tout compte créé sur la machine à un accès SSH, s'il a un shell valide.

Il est possible de chrooter des utilisateurs dans leur /home, c'est à dire, les emprisonner dans leur dossier personnel, afin de ne pas parcourir l'arborescence du système.

Pour cela, on ajoute en toute fin du fichier /etc/ssh/sshd_config :

Code BASH :
Match User user-sftp
        ChrootDirectory %h
        ForceCommand internal-sftp
 



Match User user-sftp : Ce qui va suivre va concerner l'utilisateur user-sftp
ChrootDirectory %h : On l'emprisonne dans son dossier personnel (%h est une variable, mais on peut spécifier le dossier que l'on veut)
ForceCommand internal-sftp : L'utilisateur ne pourra pas se connecter en ssh sur le serveur, mais uniquement avec le service sftp.

Le dossier spécifié dans le champ ChrootDirectory doit posséder les droits 755 et avoir comme propriétaire root.


SSHFS, système de fichiers sur SSH



Présentation



SSHFS sert à monter sur son système de fichier local, un autre système de fichier distant, à travers une connexion SSH, le tout avec des droits utilisateur.

L'avantage est de manipuler les données distantes avec un gestionnaire de fichier, qu'il soit graphique (Dolphin ...) ou en ligne de commande.

C'est bien plus pratique que la commande scp couplée avec ssh ou rsync.

Il est nécessaire d'avoir un serveur SSH fonctionnel sur le serveur distant, et d'avoir le paquet sshfs ou sshfs-fuse installé sur le poste client.

Monter un répertoire sur un serveur distant sur son arborescence locale



S'assurer que le point de montage est créé et vérifier que les droits de ce dossier sont biens ceux de l'utilisateur qui va utiliser sshfs :

Code BASH :
mkdir /media/serveur
chown adrien:adrien /media/serveur


J'ai choisi de mettre le point de montage dans /media par "habitude" mais on peut créer un dossier où on souhaite, même dans son répertoire personnel.

Ensuite, on monte le dossier distant dans l'arborescence locale :

Code BASH :
sshfs utilisateur@serveur:/home/utilisateur /media/serveur


Si le serveur SSH n'écoute pas sur le port 22, utiliser le commutateur -p suivi du numéro de port (exemple avec 2345):

Code BASH :
sshfs -p 2345 utilisateur@serveur:/home/utilisateur /media/serveur


Après cette commande, le mot de passe de l'utilisateur du serveur sera demandé, sauf si le mécanisme clés privées/publiques est actif et fonctionnel.



Démonter le système de fichier



Plus aucun fichier ne doit être ouvert dans le point de montage, sinon, il sera impossible de démonter.

Une fois ce prérequis validé, démonter le système de fichiers sshfs via :

Code BASH :
fusermount -u /media/serveur



Utiliser sshfs dans le fstab (en mode noauto)



S'assurer que les droits sont bons et que le point de montage existe. Il est plus pratique d'avoir un mécanisme de clés privées/publiques pour cette méthode ...

Ajouter une lige dans /etc/fstab de ce style :

Code :
sshfs#utilisateur@serveur:/home/utilisateur               /media/serveur          fuse            port=22,user,noauto,noatime     0 0

Cette page a été vue 30456 fois