= SSH - ProxyCommand = ProxyCommand es un opción para ejecutar automáticamente el comando ssh en el host remoto y pasar al siguiente host reenviando todo el tráfico a través de una netcat encriptada con ssh. <> == ¿Cómo funciona? == En un modo simple, esto funciona de la siguiente manera: Se establece una conexión entre tú maquina y bioinfo.utalca.cl {{{ +-------+ +------------+ you ---ssh--- bioinfo +-------+ +------------+ }}} bioinfo ejecuta un netcat para establecer conexión con un equipo de la red privada {{{ +------------+ +--------+ bioinfo ---netcat--- server +------------+ +--------+ }}} Entonces tú estás conectado a través de una conexión ssh, en un túnel netcat (encriptado) hasta el equipo de la red privada. {{{ +-----+ +------------+ +--------+ | you | | bioinfo | | server | | | ===ssh=over=netcat=tunnel====================> | | +-----+ +------------+ +--------+ }}} En el caso de nuestra escuela, considerar que: * Equipo de red pública: bioinfo.utalca.cl. * Equipo red privada: Todo aquél equipo que se encuentre en dependencias de la escuela. == ¿Cómo configurar? == La configuración es bastante sencilla, sólo se debe editar el archivo de configuración local de SSH ubicado en /home/user/.ssh/config (Linux) o /Users/user/.ssh/config (OSX) e insertar los siguientes tag con los datos relacionados: * Host: identificador único * User: usuario de la máquina final a la que se desea conectar * Hostname: con la IP de la máquina final * proxycommand: con la instrucción de conexión a establecer Un ejemplo o template para generar una conexión a la escuela puede ser: {{{ Host clustertalca user tu-usuario-equipo-red-privada hostname ip-equipo-red-privada proxycommand ssh tu-usuario-bioinfo@bioinfo.utalca.cl nc -w1 %h %p 2> /dev/null }}} == Ejemplos == Para el caso de acceder al clustertalca, la configuración de ssh_config sería la siguiente: {{{ Host clustertalca user usuariocluster hostname 10.1.1.101 proxycommand ssh tu-usuario-bioinfo@bioinfo.utalca.cl nc -w1 %h %p 2> /dev/null }}} La conexión desde tú máquina se realiza del siguiente modo, instanciando el Host definido: {{{ ssh clustertalca }}} Mismo caso de querer traspasar datos desde tú maquina hasta el cluster se debe ejecutar lo siguiente: {{{ scp fichero clustertalca: }}} {{{ scp -r directorio clustertalca: }}} No olvidar que después del dos puntos (:) va en referencia al directorio personal ($HOME) del usuario. Para copiar los datos generados desde el clustertalca hasta tú máquina se puede realizar de la siguiente forma: {{{ scp clustertalca:fichero }}} {{{ scp -r clustertalca:directorio }}}