Estoy detrás de un firewall de red que no me permite pasar por el puerto predeterminado. Debido a eso, no puedo empujar ninguna rama bzr a mi repositorio. Me gustaría saber si es posible de alguna manera proxy el ssh a través del puerto 80 para poder empujar las ramas.
Escuché que el sacacorchos te permite hacer eso, pero no estoy seguro de cómo hacerlo exactamente.
Si conoce algún servidor proxy que funcione que le permita hacer eso, por favor, menciónelo.
man ssh
revela puerto: host: hostport. Así que inténtalo másssh 80:server.com
o menos.Respuestas:
Un buen firewall corporativo inspeccionará el tráfico independientemente del puerto, por lo que cambiar el puerto podría no funcionar.
Si tiene control sobre el servidor y aún desea probarlo, puede cambiar el puerto sshd al puerto 80. Advertencia Si tiene algo más ejecutándose en el puerto 80 (en el servidor), esto no funcionará y probablemente significará que está completamente perder el acceso SSH al servidor!
Tendrá que editar
/etc/ssh/sshd_config
y cambiarPort
a80
. Entonces correY luego conecta:
Su ruta bzr entonces se vería así:
bzr+ssh://host:80/path/
Otro método es usar WebDav. Esto debería evitar el problema del firewall por completo porque todo sucede en el Puerto 80, pero requerirá que ejecute Apache y configure varias cosas:
Una VPN podría ser una opción, pero si
ssh
está bloqueada, esperaría que también se excluya.Es posible que solo desee hablar con los administradores de su red. Necesitas hacer algo y te están deteniendo. Si tienen una razón para bloquear
ssh
, es probable que vean cualquier intento extremo de eludirlo de manera bastante negativa ...En resumen, podría ser más seguro hablar con ellos.
fuente
Port
líneas, con una para cada puerto en el/etc/ssh/sshd_config
archivo.SSH a través del proxy
Si el firewall lo permite, puede ejecutar ssh en cualquier puerto, pero eso requiere que el servidor ssh escuche en ese puerto. Es poco probable que el puerto 80 funcione, porque la mayoría de los lugares que tienen firewalls analizan el tráfico en ese puerto y bloquean todo lo que no sea HTTP. Pero el puerto 443, que normalmente es el puerto HTTPS, a menudo funciona, porque SSH y HTTPS se parecen mucho al software de filtrado, por lo que su sesión SSH se verá como una sesión HTTPS. (Es posible distinguir HTTPS y SSH, por lo que esto no funcionará si el firewall es lo suficientemente sofisticado).
Si tiene control sobre el servidor, hágalo escuchar en el puerto 443 además del 22 (el puerto ssh normal). Puede configurar el puerto en
/etc/ssh/sshd_config
: agregar una líneaAdemás del
Port 22
que ya debería estar allí. Tenga en cuenta que esto supone que el servidor ssh no es también un servidor HTTPS. Si es así, necesitará encontrar otro puerto que el firewall le permita usar o encontrar otro servidor ssh (consulte el reenvío a continuación).Si no necesita configurar un proxy web en su navegador web, puede intentar conectarse directamente:
Si eso funciona, defina un alias en su
~/.ssh/config
:Si necesita configurar un proxy web en su navegador web, dígale a ssh que vaya a través del proxy. Instalar sacacorchos . Defina un alias como este en su
~/.ssh/config
, dóndehttp://proxy.acme.com:3128/
está el proxy que usa para HTTPS en el exterior (reemplace por el nombre de host y el puerto adecuados):SSH sobre SSH
Si puede acceder a alguna máquina externa mediante una de las técnicas anteriores pero no a la máquina que le interesa, úsela para reenviar una conexión. Asumiendo que puede ssh a una máquina llamada
mygateway
y que desea alcanzar el servidor SSH enmytarget
, instale netcat-OpenBSD enmygateway
(o, si no se está ejecutando Ubuntu, asegúrese de que tiene elnc
comando). Pon esto en tu~/.ssh/config
:SSH a Apache
Si el host al que desea conectarse ya está ejecutando Apache y escuchando en el puerto 443, y tiene control sobre ese host, puede configurar este Apache para aceptar conexiones SSH y reenviarlas. Ver Tunneling SSH sobre HTTP (S) .
fuente
Acabo de leer una solución sofisticada aquí:
http://benctechnicalblog.blogspot.hu/2011/03/ssh-over-connect-over-port-80.html
Puede SSH en casa en el puerto 80 incluso si su servidor doméstico ejecuta un servidor web en el puerto 80 también.
Suponiendo que el servidor doméstico ejecuta Apache. La idea implica habilitar mod_proxy en su servidor, luego restringirlo para que se conecte a localhost (proxy.conf):
Ahora puede hacer una solicitud de conexión HTTP al localhost y el servidor web establecerá un túnel para usted, solo necesita asegurarse de que todo el tráfico pase a través de su proxy:
Asegúrese de que las conexiones de host local a SSH no tengan privilegios (para evitar que entren extraños ...)
Esto debería funcionar si está detrás de un enrutador que solo permite la salida del puerto 80.
Si está detrás de un proxy (por lo que necesita establecer un proxy en su navegador para obtener la web), primero deberá establecer un túnel para su propio host, luego emitir otra solicitud CONNECT dentro de este túnel para llegar a su host. Esto es más sofisticado, necesitará usar 2 netcats para esto.
Todo es posible, pero hágalo bajo su propio riesgo ...
ACTUALIZAR:
O simplemente, use una aplicación web que le brinde SSH a través de un navegador. http://en.wikipedia.org/wiki/Web-based_SSH
fuente
Si no tiene ningún control sobre el servidor para cambiar el puerto SSH al puerto 80 o si no puede SSH sobre el puerto 80 porque el firewall le impide transferir dichos datos a través del puerto 80, puede probar TOR.
TOR es una red enorme. Su computadora se conecta a otra computadora en algún lugar del mundo, esa computadora se conecta a otra hasta que llega al servidor SSH. Todo esto es amigable con el firewall, sucede en el puerto 443 (que su empresa no bloquea, o bien ... bueno, eso no es tan inteligente de su parte). Literalmente es solo un gran proxy o VPN, y también está encriptado. De esta manera, puede acceder a cualquier host en cualquier puerto (también SSH de un servidor en el puerto 22).
Míralo en línea en www.torproject.org .
fuente
Lo siento, tengo que hacer de abogado del diablo.
Sé que probablemente hay una razón para hacerlo, sin embargo, ¿por qué los administradores de redes / firewall no abren el puerto específico que está buscando? Desde el punto de vista de la seguridad, ¿quiere arriesgarse a que la inspección web pierda algo? Si está configurado para pasar por alto el puerto 80 para el tráfico estándar, y te estás poniendo en peligro.
Estoy de acuerdo con algunas sugerencias anteriores, donde como punto a punto vpn puede ser una opción más segura. Nuevamente, desde el punto de vista de la seguridad, me interesaría saber la razón por la que realmente está pasando por alto las políticas de seguridad y por qué no puede colocar su servidor en un dmz o en la red troncal para acceder. Solo yo. Buena suerte.
fuente