Développeur Web RoR

Aller au contenu | Aller au menu | Aller à la recherche

Tag - ssh

Fil des billets

mercredi 25 janvier 2012

Ouvrir un tunnel SSH

Qu'est ce qu'un tunnel ssh ?

Un tunnel ssh est un conduit qui permet de faire transiter tout ce que l'on veut à travers ssh.

Voici un schema explicatif :

Pourquoi utiliser un tunnel ssh ?

L'intérêt principal est la sécurité. Seul le port 22 est écoute par le serveur en question (ssh est crypté et sécurisé). D'autre part (intérêt pour le fainéant) en utilisant des tunnels ssh ça vous permet de ne pas ouvrir des ports pour tout et n'importe quoi.

Comment le mettre en place ?

ssh -L port_local:localhost:port_sur_le_serveur -XC user@serveur

Exemples : 

pour VNC (port 5900) :

ssh -L 5900:localhost:5900 -XC me@example.com

pour SVN (port 3690) :

ssh -L 3690:localhost:3690 -XC me@example.com

Une fois le tunnel ssh ouvert vous pouvez sur votre poste faire comme si le service et sur localhost. Donc pour pouvez vous connecter avec vinagre (client VNC) sur localhost pour prendre la main sur example.com :

vinagre localhost:5900

D'une manière générale, si vous configurez vino (VNC server) pour écouter sur le port 5987 vous pourrez faire :

ssh -L Y:localhost:5987 -XC me@example.com

vinagre localhost:Y

Y étant un port quelconque n'étant pas déjà utilisé par localhost.

Sur windows y a pas de soucis vous pouvez ouvrir votre tunnel ssh en utilisant putty. (voir le Wiki de korben pour la config de putty : http://free.korben.info/index.php/Tunnel_SSH)

Il est également possible de changer le port de ssh...


vendredi 19 novembre 2010

ssh et capistrano sur un long traitement (Connection reset by peer)

Avec capistrano il est fréquent que le déploiement prenne du temps, si le traitement est trop lourd capistrano "freeze".

Exemple : cap deploy:cleanup (quand on a 50 releases sur le serveur :-p)

Il faut régler sur le serveur dans /etc/ssh/sshd_config deux paramètres pour ne pas avoir de "freeze" :

ClientAliveInterval 5 

ClientAliveCountMax 1000

Issu de la documentation :

ClientAliveInterval
Règle un intervalle de temporisation en secondes après lequel, si aucune donnée n'est reçue de la part du client, sshd envoie un message dans le canal crypté pour demander une réponse du client. Par défaut 0, ce qui signifie que ces messages ne sont pas envoyés au client. Cette option ne s'applique qu'à la version 2 du protocole.
ClientAliveCountMax
Règle le nombre de messages de maintien de la connexion (voir ci-dessus) à envoyer sans réponse de la part du client pour sshd Si ce seuil est atteint tandis que les messages de maintien de la connexion ont été envoyés, sshd déconnecte le client et termine la session. Il est important de noter que ces messages de maintien de la connexion sont très différents de l'option KeepAlive (ci-dessous). Les messages de maintien de la connexion sont envoyés par le tunnel crypté, et par conséquent ne sont pas falsifiables. Le maintien de la connexion au niveau TCP activé par l'optionKeepAlive est falsifiable. Le mécanisme de maintien de la connexion est intéressant quand le client ou le serveur ont besoin de savoir si la connexion est inactive.

Par défaut 3. Si l'option ClientAliveInterval (ci-dessus) est réglée à 15, et ClientAliveCountMax est réglée à sa valeur par défaut, les clients ssh qui ne répondent pas sont déconnectés après environ 45 secondes.