7.3. Fonctionnement des clefs de chiffrement
Pour pouvoir établir une connexion par clefs
chiffrées entre le poste local sur lequel la clef a
été créée et un poste distant il faut tout
d'abord se connecter une fois sur le poste distant en utilisant la
méthode d'authentification par mot de passe.
Il faut ensuite se placer dans le dossier ~/.ssh de la machine
distante et créer un fichier dont le nom est 'authorized_keys'.
Ce fichier doit contenir une copie des clefs publiques des
utilisateurs pouvant se connecter sur la machine distante (une simple copie du
contenu du fichier 'id_rsa.pub' généré plus haut).
user@pc-daf ]$ scp ~/.ssh/id_rsa.pub
login@pc-occgoma:rsa.pub-user login@pc-occgomar password:
id_rsa.pub 100%
user@pc-daf ]$ ssh login@pc-occgoma
login@pc-occgoma's password:
login@pc-occgoma ]$
login@pc-occgoma ]$ cat rsa.pub-user >>
~/.ssh/authorized_keys login@pc-occgoma ]$ rm rsa.pub-user
7.4. Configuration du serveur SSH.
Pour pouvoir utiliser une connexion par clef de chiffrement il
faut s'assurer que le serveur SSH de la machine distante accepte
l'authentification par clef, pour cela il faut éditer le fichier de
configuration /etc/ssh/sshd_configet vérifier que les options suivantes
sont activées:
RSAAuthentication yes # SSH v1.*
PubkeyAuthentication yes # SSH v2.*
AuthorizedKeysFile .ssh/authorized_keys
Les options RSAAuthentication(dépréciée) et
PubkeyAuthenticationpermettent d'activer l'authentification par clef, l'option
AuthorizedKeysFilerenseigne, pour chaque utilisateur, le nom du fichier dans
lequel doivent être placées les clefs publiques des machines se
connectant sur le serveur SSH.
Pour terminer l'opération il faut ensuite relancer le
serveur SSH:
cd /etc/init.d ./sshd restart
ou plus simplement: service sshd restart
A partir de maintenant la connexion entre les deux machines
dans le sens poste local vers poste distant se fera sans nécessiter de
mot de passe et avec des clefs de chiffrement. Il n'y a simplement qu'a taper
la commande dans un terminal pour être connecté
instantanément sans aucune autres formalités :
servadministration@pc-daf ]$ ssh login@pc-occgoma
login@pc-occgoma ]$
7.5. Connexion du serveur vers le client
Pour établir une connexion sans mot de passe dans les deux
sens, c'est à dire également sans mot de passe de pc-serveur vers
pc-client il faut créer une clef de chiffrement sur la machine distante
pc-serveuret copier sa partie publique dans le fichier ~/.ssh/authorized_keysde
la machine locale pc-client.
7.6. Faire « rebondir » une connexion
SSH
La procédure de connexion d'une machine à une autre
est grandement simplifiée par l'utilisation des clefs de chiffrement.
Cependant les normes de sécurité devenant de plus
en plus drastiques, les administrateurs réseau choisissent
fréquemment de contrôler tous les flux entrant et sortant de leur
réseau en bloquant les connexions directes d'un poste client du
réseau local vers un serveur externe (et vice-versa) il faut alors
passer par un poste proxy qui filtre les connexions entrantes (et sortantes)
:
Utilisation d'un proxy
Les connexions et plus particulièrement les transferts de
données entre les machines client et serveur deviennent fastidieuses.
Dans le cas de la copie d'un fichier d'un poste client d'un
réseau local vers un poste serveur distant il faudrait effectuer dans
l'ordre les opérations :
'Copie des fichiers sur le proxy'
'Connexion sur le proxy'
'Copie des fichiers sur le serveur distant depuis le proxy'
Et peut être, pour travailler et modifier ce fichier sur le
serveur distant : 'Connexion sur le serveur distant depuis le proxy'.
La première étape nécessaire pour mettre en
place le « rebond » SSH est de générer des clefs de
chiffrement sur chacune des machines concernées (le client, le proxy et
le serveur).
Bien sûr l'opération reste possible avec des mots de
passe mais demeure dans ce cas toujours un peu laborieuse.
Il faut ensuite créer un fichier ~/.ssh/authorized_keys
sur chacune des machines concernées (le client, le proxy et le serveur)
et copier dans chaque fichier authorized_keys le contenu des parties publiques
des clefs de chiffrement des deux autres machines. Cela permet d'activer la
connexion par clef dans les deux sens: client -> proxy -> serveur (sens
1) et serveur -> proxy -> client (sens
2).
|