SSH : les transfers de fichiers faciles et sécurisés

18 janvier 2007

Imaginez une maison, un appartement, un foyer tout ce qu’il y a de plus classique. Imaginez une très petite ou moyenne entreprise. Vous utilisez Ubuntu, bien-sûr, vous êtes connecté à Internet (encore plus évident) et vous voulez partager des fichiers facilement et de manière sécurisée – plus encore si vous utilisez une connection wifi.

Alors vous vous devez de connaître et d’utiliser le SSH. Ce n’est pas un procédé compliqué : au contraire, c’est incroyablement simple et pratique. Et qui plus est, Ubuntu a déjà tout ce qu’il faut pour le mettre en place. Plus simple et plus sécurisé que le FTP, rempli de fonctionnalités avancées : découvrez sans attendre SSH…le premier Doppio d’Ubunteros.fr !

Le protocole SSH est multi-plateforme, vous pourrez l’utiliser avec Windows, Mac OS, Linux, etc. Et pour mettre en place une connection grâce à ce protocole il vous faut un serveur, un logiciel : sous Ubuntu il s’agit de openssh-server. Vous pourrez l’installer très facilement grâce à Synaptic.

Évidement, il faut installer openssh-server sur les deux machines qui doivent communiquer.

Une fois que vous avez fait cela, cliquez simplement sur Raccourcis dans votre barre de menu, puis Se connecter à un serveur. Choisissez SSH comme Type de service, renseignez l’adresse IP de l’ordinateur auquel vous souhaitez vous connecter dans le champ Serveur et le chemin du Dossier que vous souhaitez accéder sur l’ordinateur distant (vous pourrez ensuite naviguer dans les répertoires via Nautilus). Enfin le Nom à utiliser pour la connection est le nom de l’utilisateur de l’ordinateur distant (en fonction du répertoire que vous souhaitez accéder, si vous avez plusieurs utilisateurs.) Cliquez maintenant sur Connecter, donnez le mot de passe correspondant à l’utilisateur de l’ordinateur distant, et vous voilà dedans !

Difficile de faire plus simple pour établir une connection sécurisée, non ?

Si vous avez besoin d’accéder à une machine depuis Windows, via SSH, vous pouvez utiliser ce logiciel gratuit.

Maintenant pour ceux qui aiment à jouer avec les lignes de commande (et j’en fait partie), voici comment utiliser SSH avec un terminal. Prenons l’exemple basique d’un transfert de fichiers (mais rappelez vous, SSH sait faire bien d’autres choses).

Pour copier un fichier depuis votre ordinateur sur un ordinateur distant, on utilisera cette commande (à noter que le nom d’utilisateur distant peut être remplacé par le nom de la machine distante) :

  • $ scp <nom du fichier> <nom d'utilisateur distant>@<adresse IP distante>:<répertoire de destination>

Ce qui nous donne par exemple :

  • $ scp test.txt jhon@192.168.1.54:test/

Le dossier /test dans lequel sera placé le fichier envoyé se trouve dans /home/john/

Pour copier un fichier d’un ordinateur distant vers votre ordinateur, voici la commande à utiliser :

  • $ scp <nom d'utilisateur distant>@<adresse IP distante>:<chemin vers le fichier à copier> .

Donc, par exemple :

  • $ scp john@192.168.1.54:/home/joe/test.txt .

Notez bien qu’il y a un point à la fin de la ligne : il sert à désigner l’emplacement dans lequel sera copié le fichier test.txt, le répertoire actuel donc par défaut votre /home/$USER/. Ne l’oubliez donc pas.

Une des fonctionnalités avancées que vous propose SSH : ouvrir une session directement sur un ordinateur distant, en clair, prendre la main sur une machine distante.

Ici encore la simplicité est magistrale :

  • $ ssh <nom d'utilisateur distant>@<adresse IP distante>

On vous demande alors le mot de passe de l’utilisateur, et c’est parti !

Bientôt, nous verrons comment sécuriser de manière optimale cette dernière étape grâce à des clés publiques et privées.

Alors, ces clés publiques et privées. Premièrement, ce que vous devez savoir : maintenant que vous avez compris comment fonctionnait SSH vous vous dites « mais en fait il n’y a que mon mot de passe utilisateur qui me protège des intrusions ?! » Et vous avez raison, d’où la nécessité de sécuriser tout cela. Et grâce à SSH, vous allez pouvoir sécuriser de manière très efficace vos données et vos transferts. Au lieu d’utiliser de simples mots de passe SSH utilise des clés publiques et des clés privées. Vous allez vite comprendre à travers les explications qui suivent.

A moins que vous ayez déjà une clé privée (dans lequel cas passez cette étape), nous allons en créer une :

  • $ ssh-keygen -t dsa

La commande va alors vous demander où stocker la clé, acceptez la valeur par défaut en tapant Entrée, et ensuite elle vous demande une passphrase. Cette valeur est très importante : cette phrase (ou ce mot) sera utilisé pour crypter votre clé privée. Quiconque connaîtra votre clé privée non cryptée aura donc accès à vos machine via SSH. Pour obtenir une passphrase de cryptage efficace je vous suggère d’utiliser le petit utilitaire que je décrit ici – ParolaPass – en utilisant les valeurs les plus fortes et une longueur conséquente (au moins 15 caractères). Notez bien cette passphrase et gardez la précieusement, à porté de main (ainsi que votre clé privée cryptée).

Entrez donc votre passphrase et tapez Entrée.

Maintenant pour avoir accès à autres ordinateurs il va vous falloir communiquer votre clé publique. Cette clé publique est générée automatiquement dès que vous entrea votre passphrase. Elle se trouve normalement ici :

  • $ ~/.ssh/id_dsa.pub

Les ordinateurs auxquels vous voulez vous connecter doivent avoir cette clé (qui est un fichier texte sous forme ASCII) dans leur répertoire de clé autorisées, généralement situé :

  • $ ~/.ssh/authorized_keys

Nous allons donc envoyer cette clé, mais pour le faire il nous faut entrer la passphrase : et oui, nous sommes en mode sécurisé désormais. Sachez qu’il existe un outil très utile, pour ceux qui veulent transférer fréquemment des fichiers par exemple. Il s’agit de ssh-agent : cet agent chargé par Ubuntu automatiquement pour votre session ne demande qu’a être utilisé pour se souvenir de votre passphrase durant votre session. Pour qu’il s’en souvienne, tapez simplement :

  • $ ssh-add

Puis votre passphrase, et le tour est joué !

Pour envoyer la clé d’un ordinateur à l’autre donc, dans le compte root, utilisez cette commande (en n’oubliant pas de compléter l’adresse IP ou le nom de l’ordinateur distant) :

  • $ ssh-copy-id -i ~/.ssh/id_dsa.pub root@<IP ou nom de l'ordinateur distant>

Tapez le mot de passe root de l’ordinateur auquel vous voulez envoyer la clé, et c’est fait : votre serveur SSH est désormais parfaitement sécurisé !

Il ne reste plus que l’étape ultime du SSH, vous connecter en tant qu’administrateur à un ordinateur (à n’utiliser qu’en cas d’extrême nécessité) :

  • $ ssh root@<IP ou nom de l'ordinateur distant>

Entrez la passphrase une nouvelle fois, et vous avez tous les pouvoirs (et toutes les responsabilités).

Maintenant, je pense que vous comprenez l’intérêt et la sécurité qu’offre SSH : il ne faut pas seulement un mot de passe (ne l’enlevez surtout pas pour autant), il faut une clé de décryptage (passphrase) pour vous connecter d’un côté et une clé publique de l’autre pour autoriser la connection.
Sachez que les données qui transiteront à travers ce serveur SSH seront elles aussi cryptées avec votre passphrase.

Il reste encore quelques petits trucs et astuces bien utiles possibles grâce à SSH, mais je vous les réserve pour plus tard. Ce tutorail (on appelle cela un Doppio ici) est déjà bien long, et il est bien bien tard pour votre barista

Publicités

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :