ssh et renvoi de port
Par JJL, mercredi 10 mai 2006 à 00:59 :: Linux :: #62 :: rss
ssh intègre une sécurité basé sur les "host keys". Ce sont des identifiants de machines stockés dans ~/.ssh/known_hosts. Si cet identifiant change ssh nous previens qu'il y a peut-être une attaque par ip spoofing[1]. Si le paramètre StrictHostKeyChecking est positionné, on ne pourra alors même pas se connecter à un tel hôte.
Hors dans la configuration suivante, ou une passerelle fait du renvoi de port vers plusieurs machines d'un reseau local, on peux avoir deux identifiant differents associés à la même adresse publique. Le premier sera ajouté au fichier known_hosts mais on ne pourra plus se connecter sur le deuxième.
Heureusement, ssh nous permet de changer ses paramètres de configuration à la volée en les passant en ligne de commande. Ce qui nous donnera alors :
# pour se connecter sur xubuntu
ssh -p 1234 userx@addr.publique.com
# pour kubuntu
ssh -p 1235 -o "StrictHostKeyChecking=no" userk@addr.publique.com
On notera que si l'on utilise sshfs, on peux utiliser la même option :
sshfs -p 1235 -o "StrictHostKeyChecking=no" userk@addr.publique.com:/data /data
Edit
Pour résoudre ce problème, il existe en fait une solution beaucoup plus maligne. On peux en effet avoir plusieurs clefs pour un seul host. Il nous suffit donc de stocker les clefs des deux machines dans notre fichier ~/.ssh/known_host :
# sur kubuntu :
a lire, un article très bien fait sur SecurityFocus
cat /etc/ssh/ssh_host_rsa_key.pub
ssh-rsa AAAAB3...YK58=
# sur le portable :
grep addr.publique.com ~/.ssh/known_hosts
addr.publique.com ssh-rsa AAAAB3...YK58=
addr.publique.com ssh-rsa AAAAB3...zmpU=
Notes
[1] c'est à dire qu'on se connecte sur un host qui se fait passer pour un autre
Commentaires
Aucun commentaire pour le moment.
Ajouter un commentaire
Les commentaires pour ce billet sont fermés.