====== Como desplegar remoto con un tunel SSH ====== ===== Descripción ===== VNC para despliegue remoto es muy inseguro para sacarlo a internet. Sin demasiada complicacion se puede\\ hacer un tunel con SSH y desplegar remoto. ===== Prerequistos ===== VNC y SSH aunque puede usarse para otro servicios ===== Procedimiento ===== Para hacer vnc a traves de ssh .. .para hacerlo mas seguro se usael port-forwarding de ssh. ==== 1. Tiene cuenta al otro lado ==== Debe tener cuenta y password en el otro lado con servidor ssh corriendo. O sea tiene acceso ssh. Ademas debe tener un sesion de vnc corriendo en el servidor. ==== 2. Debe ejecutar el forwardeador ==== ssh -N -L 5901:direccionlocal:5901 server.example.com Con este comando se asocia el puerto 5901 (primer valor) de la maquina local con el puerto remoto de server.example.com(segundo valor). No se va a background, para eso se necesita el -f Si su usuario es diferente tendrá que hacer. ssh -l usuario -N -f -L 5901:server.example.com:5901 server.example.com Si el puerto de SSH es otro o tiene llave funciona igual ssh -p 2222 -l usuario -i llave.pem -N -f -L 5901:server.example.com:5901 server.example.com Y recuerde si va a mapear puertos menores a 1024 necesitara usuario root ==== 3. Lance el aplicativo ==== vncviewer localhost:1 Lo que implica que realmente se esta haciendo vncviewer server.example.com:5901\\ pero por el tunel ssh.   Y debe funcionar. ==== 4. O al reves. Mapee el puerto de aqui para alla ==== Puede hacer lo contrario .. que es mapear el puerto de alla hacia aca. Por ejemplo si quiero que user un proxy en mi maquina\\   ssh -p 2222 -l usuario -N -f -R 3128:192.168.8.200:31280 skina.homelinux.org  ==== 5. Conseguir internet en una maquina aislada ==== Por ejemplo si requiero tener internet en una maquina cerrada que solo tengo con ella conexion VPN + SSH .. Que hago? * Levanto la VPN * Monto proxys: squid (3128) y un DNS (53) (ejm: dnsmasq) * Mapeo los puertos ssh -p 2222 -l admin -N -f -R 31280:192.168.8.253:3128 172.19.4.21 * Varibles de ambiente en el destino export ftp_proxy="http://localhost:31280" export http_proxy="http://localhost:31280" export https_proxy="http://localhost:31280" Esto suele ser suficiente pero si esta tan bloqueado a veces toca agregar DNS tambien ssh -p 2222 -l root -N -f -R 53:192.168.8.253:53 172.19.4.21 En el resolv.con toca agregar lo siguiente pare que consulte al 53/tcp options use-vc nameserver 127.0.0.1 En el caso de NPM tambien toca otra variable de ambiente export CGI_HTTP_PROXY="http://localhost:3128" ===== Problemas ===== ==== 1. En windows se muere la conexion ==== Toca ponerle un keepalive a mano .. y funciona plink.exe -a -2 -C -t -noagent -ssh -i id_rsa.ppk -P 2222 -l admin -L 0.0.0.0:2222:172.16.63.129:2222 172.16.63.129 while true ; do echo -n -e "\r\e[OK-- `date`" ; sleep 60s ; done Este script imprime cada minuto la fecha ... bonito - ===== Referencias ===== - https:%%//%%blog.trackets.com/2014/05/17/ssh-tunnel-local-and-remote-port-forwarding-explained-with-examples.html\\ - http:%%//%%www.passivemode.net/updates/2006/6/5/ssh-vnc.html -- FIN\\   ---- __**Advertencia**__ Este documento es privado y es de uso exclusivo de sus autores y de SKINA TECH. Cualquier uso sin una autorización escrita es contra le ley de derechos de autor y de propiedad intelectual, y será motivo de una acción legal. ---- =====   =====   ============================================================== 14-Julio-2005\t\tKasandra\tv0.1 Primera version