SSH fun
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
Écrit le: 13/02/2005 @ 23:58
Petits ajouts intéressants dans la configuration:
Je continue à lire les man pages et j'en rajoute au besoin
Dernière modification le 14/02/2005 @ 00:05