Configurar SSH a través d'un HTTP Proxy

created: Ds, 10/10/2009 - 22:39 — IndiX - updated: 10/10/09 23:27

Per la meva feina de desenvolpador web, tenir accés per SSH a diferents servidors és imprescindible. Un cop connectat amb guifi.net vaig veure que el fet d'estar darrera d'un proxy com squid em feia imposible operar amb normalitat des de la línia de comandes (també coneguda per l'acrònim CLI en anglès) i, per tant, havia de trobar una solució. No m'extendré en detalls perquè una cerca a can google sobre "ssh tunneling" ens donarà tots els detalls tècnics que poguem necessitar i més.

Per aconseguir accés ssh als servidors que necessito controlar el que he fet és instal·lar Corkscrew i configurar el meu client ssh perquè l'utilitzi:

Primer, he creat (si ja el tenim només l'haurem d'editar) l'arxiu .ssh/config a la home del meu usuari (linux i macosx) i afegir-hi aquesta línia:

ProxyCommand /usr/local/bin/corkscrew IP-del-Proxy Port-del-Proxy %h %p ~/.ssh/myauth

Crear l'arxiu .ssh/myauth on he posat el login i el password que faig servir a guifi.net per l'squid, amb el format login:password

Llestos! A partir d'aquí, cada cop que utilitzi l'ssh aquest farà servir el corkscrew per loguejar-me al proxy i permetre'm l'accés als servidors remots.

Una aplicació d'aquesta tècnica (SSH tunnel) em permet també tenir accés des de la línia de comandes a servidors remots de MySQL (amb PostgreSQL també funciona). Per aquest cas només caldrà quelcom així:

$ ssh -f -N -L 3307:127.0.0.1:3306 usuari@servidor_remot

No m'extendré tampoc ara en detalls. Només comentar que els ports poden variar, a mi em funciona bé així però.

I ara, per connectar al servidor MySQL:

mysql -u usuari_mysql -p password_mysql -h127.0.0.1 -P3307

Llestos de nou, ja tenim accés als servidors MySQL remots quan no hi ha disponible una interficie web com phpmyadmin o, sencillament, quan preferim accedir-hi des de CLI per qualsevol motiu, com és el meu cas tot sovint.

Salut!

http://www.guifi.net/node/25227