• Aucun résultat trouvé

Authentification par clé

Dans le document Formation Debian GNU/Linux (Page 121-124)

Au lieu de s’authentifier par mot de passe, les utilisateurs peuvent s’authentifier grâce à la cryptographie asymétrique et son couple de clés privée/publique, comme le fait le serveur SSH auprès du client SSH.

Générer ses clés

Pour générer un couple de clés DSA, tapez :

% ssh-keygen -t dsa

Les clés générées ont par défaut une longueur de 1024 bits, ce qui est aujourd’hui considéré comme suffisant pour une bonne protection.

Par défaut (il demande confirmation lors du processus de création), la clé privée est stockée dans le fichier~/.ssh/id_dsa avec les permissions 600 et la clé publique est stockée dans le fichier~/.ssh/id_dsa.pubavec les permissions 644.

Lors de la création, il vous demande unepass phrasequi est un mot de passe pour protéger la clé privée. Cettepass phrasesert à crypter la clé privée. Lapass phrasevous sera alors demandée à chaque utilisation de la clé privée, c’est à dire à chaque fois que vous vous logguerez en utilisant cette méthode d’authentification. Un mécanisme appeléssh-agentpermet de ne pas rentrer le mot de passe à chaque fois... comme nous le verrons un peu plus loin dans ce chapitre.

NOTE

Vous pouvez à tout moment changer lapass phrasequi protège votre clé privée avec la commandessh-keygen -p.

Autoriser votre clé publique

Pour cela, il suffit de copier votre clé publique dans le fichier~/.ssh/authorized_keysde la machine sur laquelle vous voulez vous logguer à distance. La commande suivante permet de réaliser cette opération via SSH :

% ssh-copy-id -i ~/.ssh/id_dsa.pub login@nom_DNS_du_serveur et entrez le mot de passe de votre compte sur le serveur.

Se logguer

La commande est la même que pour une authentification par mot de passe.

35.5 Transfert de fichiers par SSH

En console

Le transfert de fichiers par SSH est possible de deux façons :

– avecscp(comme Ssh CoPy), qui s’utilise la même manière que la commandecp;

– aveclftp, dont je vous avais déjà parlé au chapitreLe Web et le FTP en consolepour les transferts de fichiers par FTP.

Encore une fois, vous pouvez utiliser la méthode d’authentification par mot de passe ou par clés, l’utilisation est la même.

Utiliser SCP

Pour illustrer la syntaxe, je vais donner quelques exemples :

– pour transférer le fichiertest1.txtsitué dans le répertoire courant vers le home du comptetotode la machineordi1.exemple.org sur laquelle tourne un serveur SSH :

% scp test1.txt toto@ordi1.exemple.org:

– pour récupérer le fichiertest2.txtsitué le home de l’utilisateurtotode la machineordi2.exemple.orget l’écrire dans le répertoire courant :

% scp toto@ordi2.exemple.org:test2.txt .

– pour récupérer tous les fichiers ayant l’extension.txtsitués dans le répertoire/usr/localde la machineordi2.exemple.org et l’écrire dans le sous-répertoiretest-scpdu répertoire courant :

% scp toto@ordi2.exemple.org:/usr/local/*.txt test-scp

– pour transférer l’intégralité du sous-répertoiretest-scpdu répertoire courant vers le sous répertoireincomingdu home de l’utilisateurtotode la machineordi1.exemple.org:

% scp -r test-scp toto@ordi1.exemple.org:incoming

Utiliser lftp

Je vous avais déjà parlé d’utilisation delftpcomme client FTP dans la sectionLe FTP en console. Mais ce que je ne vous avais pas dit, c’est quelftpsait aussi transférer des fichiers par SSH !

Pour l’installation et la configuration delftp, reportez-vous à la sectionLe FTP en console.

Pour se connecter par SSH en utilisateurtotosur le serveurordi1.exemple.org:

% lftp sftp://toto@ordi1.exemple.org

Ensuite, les commandes sont exactement les mêmes que lors de l’utilisation de lftp comme client FTP !

En graphique

Gnome permet de se connecter à un serveur SSH directement dans Nautilus. Comme pour FTP, cela permet d’accéder aux fichiers distants depuis toutes les applications Gnome.

Pour cela, allez dans le menuRaccourcis > Se connecter à un serveur, puis choisissezSSH, et réglez les paramètres de connexion.

FIG. 35.1 – Connexion à un serveur SSH

35.6 Se logguer par SSH sans taper de mot de passe

Le principe

Cette section s’adresse à ceux qui utilisent un couple de clés publiques / privées, et qui ont crypté leur clé privée avec unepass phrase(c’est la configuration la plus sûre). Par conséquent, le client SSH demande lapass phraseà chaque utilisation des clés pour s’authentifier.

Pour éviter d’avoir à taper systématiquement sapass phrase, il faut utiliserssh-agent: ce programme tourne en tâche de fond et garde la clef en mémoire. La commandessh-addpermet de donner sa clé àssh-agent. Ensuite, quand vous utilisez le client SSH, il contactessh-agentpour qu’il lui donne la clé.

La pratique

en console

Dans une console, ouvrez un screen avecssh-agenten tâche de fond :

% ssh-agent screen Puis donnez votre clé à l’agent :

% ssh-add

Il vous demande alors votre pass phrase. Maintenant que votre clé a été transmise à l’agent, vous pouvez vous connecter sans entrer de mot de passe à toutes les machines pour lesquelles vous avez mis votre clé publique dans le fichier~/.ssh/

authorized_keys.

en mode graphique

Si vous utilisez GDM, l’agent SSH a déjà été lançé par GDM. Vous n’avez donc plus qu’à exécuterssh-addune fois que vous êtes loggué.

35.7 Faire des tunnels SSH

Faire un tunnel SSH est un moyen simple de crypter n’importe quelle communication TCP entre votre machine et une machine sur laquelle vous avez un accès SSH.

Par exemple, pour établir un tunnel SSH pour une connexion HTTP vers la machineserveur.exemple.org:

% ssh -L 2012:serveur.exemple.org:80 toto@serveur.exemple.org

où2012est le port sur la machine cliente à partir duquel la connexion entre dans le tunnel SSH (le port doit être supérieur à 1024 si on ne veut pas avoir à lançer le tunnel en tant queroot, et le pare-feu ne doit pas bloquer ce port).

Ensuite, il suffit de lançer un navigateur Web en lui demandant de se connecter en local sur ce port :

% w3m http://localhost:2012

FIG. 35.2 – Exemple de tunnel SSH

35.8 Et le bon vieux Telnet... ?

Dans le document Formation Debian GNU/Linux (Page 121-124)

Documents relatifs