Cómo utilizar un proxy HTTP como transporte para SSH

¿Alguna vez has llegado al trabajo y te has dado cuenta de que dejaste un archivo necesario en casa? ¿O estás en la carretera y te encuentras en la misma situación? Algunos entornos y proveedores de servicios de Internet tienen estrictas reglas de firewall que pueden complicar las cosas. En algunos casos, estas reglas son absolutamente necesarias, en otros quizás no tanto. Si te encuentras en un entorno que prohíbe el uso de SSH y obliga a utilizar un proxy HTTP, es posible utilizar ese proxy como transporte para SSH.

Por favor, ten en cuenta que no estoy promoviendo eludir el firewall de tu entorno si tienes una política que lo prohíbe expresamente o acceso SSH saliente. Desafortunadamente, en el mundo real, algunas reglas draconianas de firewall causan más problemas de los necesarios y sin una razón real. Sin embargo, en algunos entornos, la denegación explícita de SSH saliente es necesaria y por esa razón debes respetar la política. No estoy promoviendo en absoluto romper ninguna regla a menos que tengas permiso o una excepción de las personas que deberían otorgarlo.

Con ese descargo de responsabilidad hecho, ve a la página de inicio de Corkscrew y descarga la fuente de Corkscrew. Corkscrew es un programa de túneles HTTP que no requiere modificaciones en el lado del servidor para funcionar. También es multiplataforma y funcionará en la mayoría de los sistemas cliente.

Para compilar Corkscrew, simplemente descomprime el archivo tarball y ejecuta:

./configure
make

Luego, copia la aplicación resultante de Corkscrew a algún lugar de tu PATH o en ~/bin/. A continuación, edita tu archivo de configuración SSH, ~/.ssh/config, y agrega:

Host algunhost
    Hostname algunhost.ejemplo.com
    ProxyCommand /home/usuario/bin/corkscrew proxy.ejemplo.com 8080 %h %p

Reemplaza el nombre de host por el host al que estás intentando conectarte a través de SSH y reemplaza "proxy.ejemplo.com" por el proxy HTTP real. También es posible que necesites reemplazar el puerto (8080) si el proxy escucha en un puerto alternativo (por ejemplo, el puerto 3128 en el caso de Squid). OpenSSH convierte de forma transparente el %h en el nombre de host al que conectarse (algunhost.ejemplo.com) y el puerto al que conectarse (22, de forma predeterminada).

Cómo utilizar Isearch para buscar archivos de texto en Linux

La línea ProxyCommand aquí le indica a OpenSSH que inicie el programa Corkscrew para realizar la conexión real al servidor SSH de destino. Puedes crear múltiples entradas para todos los hosts a los que necesites conectarte, o utilizar una expresión regular sencilla o un asterisco global (*) en la línea Host (* le indica a OpenSSH que utilice esta configuración de host para todas las conexiones).

Cuando hayas hecho esto, deberías poder ejecutar ssh algunhost y establecer la conexión, tal como si estuvieras conectándote directamente. Ten en cuenta que esto puede no funcionar con todos los proxies, por lo que puede ser un poco irregular, pero debería funcionar con Squid y con el módulo mod_proxy de Apache, así como con otras implementaciones populares.

Obtén la versión en PDF de este consejo aquí.

En Newsmatic nos especializamos en tecnología de vanguardia, contamos con los artículos mas novedosos sobre Código abierto, allí encontraras muchos artículos similares a Cómo utilizar un proxy HTTP como transporte para SSH , tenemos lo ultimo en tecnología 2023.

Artículos Relacionados

Subir

Utilizamos cookies para mejorar su experiencia de navegación, mostrarle anuncios o contenidos personalizados y analizar nuestro tráfico. Al hacer clic en “Aceptar todo” usted da su consentimiento a nuestro uso de las cookies.