Actions











SSH fun

Écrit le 12/02/2005 @ 14:51 par blanalex

Informatique - SécuritéHey toi, le jeune! Tu veux te connecter à un ordinateur avec SSH et tu es fatigué d'avoir à entrer un mot de passe tout le temps? Tu veux copier des fichiers d'un ordinateur à l'autre mais tu veux pas que quelqu'un avec un packet scanner puisse intercepter ta collection de vidéos zoophiles? Tu veux accéder à distance à une machine derrière un firewall? Ce blog est pour toi!

1-Comment se connecter à une machine en SSH sans mot de passe
C'est plutôt simple, il faut se générer une paire de clés publique-privée pour t'authentifier auprès de ton serveur. Il suffit de faire sur la station de travail (et non pas le serveur) 'ssh-keygen -t dsa'. Le programme va poser quelques questions et générer deux fichier: id_dsa et id_dsa.pub . Il ne suffit plus que d'ajouter le contenu du fichier id_dsa.pub à l'intérieur du fichier ~/.ssh/authorized_keys sur le serveur. Disons qu'on a réussi à envoyer le fichier id_dsa.pub sur le serveur (avec l'explication au point 2), la commande simple serait de faire 'cat id_dsa.pub >> ~/.ssh/authorized_keys'. Il faut aussi s'assurer que le fichier authorized_keys ait les permissions 600 dans son dossier, sinon ssh pourrait chialer un peu.

Une fois que la clé id_dsa.pub se trouve à l'intérieur de votre authorized_keys sur le serveur, chaque fois que vous voudrez vous servir d'un service de SSH, il ne vous demandera plus de mot de passe, à moins que vous ayez encodé votre clé avec un mot de passe.

2-Comment copier des fichiers sécuritairement avec SSH
Disons qu'on veut copier le fichier id_dsa.pub qu'on vient de générer sur son ordi pour le placer sur le serveur, c'est plutôt simple. Lors de la création de la clé, le fichier id_dsa.pub est placé dans le répertoire ~/.ssh, donc pour envoyer le fichier sécuritairement, il faut faire 'scp ~/.ssh/id_dsa.pub blanalex@menzonet.org:/home/blanalex'. Donc, la syntaxe de base de scp est scp [files] [user]@[server]:[path]. Si vous avez suivi toutes les instructions pour générer une clé et que vous l'avez correctement ajouté à votre authorized_keys, scp ne devrait pas vous demander de mot de passe.

3-Comment faire du port forwarding avec SSH
Exemple concret dans mon cas. J'ai à mon travail une machine avec WinXP Pro avec Remote Desktop d'activé. J'aimerais accéder au remote desktop de cette machine à partir de la maison, mais la machine a une adresse IP privée. Heureusement que j'ai un serveur qui est dans le DMZ du firewall qui a SSH d'installé, car je peux me servir d'elle pour me faire un tunnel sécuritaire et me connecter à ma station.

Avec ssh, pour établir un tunnel sécuritaire, la syntaxe est: ssh -L [port d'entrée du tunnel]:[machine sur le subnet du serveur]:[port de la machine remote] -N [user]@[serveur]. L'option -N est pour dire au client SSH de ne pas exécuter de commande sur le serveur étant donné qu'on ne fait que du port forwarding. Donc dans mon cas ça me donne ssh -L 3389:51a-tech.csvdc.qc.ca:3389 -N blanalex@abraracourcix.scoeur.csvdc.qc.ca. Une fois cette commande-là exécutée, SSH n'affiche plus rien, mais dans Remote Desktop Connection j'entre localhost comme adresse du serveur, et voilà! j'ai une connection sécuritaire établie.

Ce qui est amusant du tunnel comme ça c'est que je peux disons établir le tunnel disons sur Petibonum (mon ordinateur à la maison) et de me servir de Jolitorax (le portable de la job) pour me connecter. Alors, sur Jolitorax, dans Remote Desktop Connection, je marque petibonum comme adresse du serveur.

Dernière modification le 12/02/2005 @ 14:52 par blanalex

Commentaire par blanalex  Score: 2
Écrit le: 13/02/2005 @ 23:58

Petits ajouts intéressants dans la configuration:

  • dans le fichier ~/.ssh/config, on peut mettre l'option CheckHostIP=no, particulièrement pratique lorsque les serveurs dont on se sert régulièrement ont une adresse IP dynamique.
  • Autre chose intéressante est que ssh peut servir de serveur SOCKS4 lorsqu'on établit un tunnel sécurisé.
  • Par défaut la compression gzip est désactivée dans OpenSSH, pour l'activer, il faut ajouter Compression=yes dans les fichiers de config.
  • Par défaut, l'exemple que j'ai marqué où Petibonum établit un tunnel et que Jolitorax s'en sert pour se connecter à mon serveur protégé, ne se peut pas. Il faut marquer GatewayPorts=yes dans les configs


Je continue à lire les man pages et j'en rajoute au besoin
Dernière modification le 14/02/2005 @ 00:05

Commentaire par Drizzt  Score: 0
Écrit le: 18/04/2006 @ 13:34

Est-ce que l'échange de clés pour l'authentification est une option à la compilation?

Commentaire par Drizzt  Score: 0
Écrit le: 18/04/2006 @ 14:03

Ça semble pas..

Il faut aussi que le répertoire maison de l'utilisateur sur le serveur ne soit pas world readable. Aussi non un mot de passe est demandé.

Dans tous les cas, si vous avez un problème, ouvrez la session avec l'option "-v" et gardez un oeil sur les logs "messages" avec "tail -f". Ça devrait vous donner des incides Wink

Fait intéressant, l'échange de clés peut être utilisée pour faire du scp sans demande de mot de passe, et donc peut servire pour des transferts de fichiers sécurisés.. comme un backup disons!
Dernière modification le 18/04/2006 @ 14:15


Tous les blogs
<< Apple annonce un 2e stock split | Retour aux blogs | Le HIV contre le cancer? >>
Blogs de la même catégorie
<< Microsoft Anti-Spyware désactivé par.. un Spyware | Des spywares impossible à détecter >>