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ínea
Port 443
Ademá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:
ssh -p 443 myserver.example.com
Si eso funciona, defina un alias en su ~/.ssh/config
:
Host myserver
HostName myserver.example.com
Port 443
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ónde http://proxy.acme.com:3128/
está el proxy que usa para HTTPS en el exterior (reemplace por el nombre de host y el puerto adecuados):
Host myserver
HostName myserver.example.com
Port 443
ProxyCommand /usr/bin/corkscrew proxy.acme.com 3128 %h %p
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 en mytarget
, instale netcat-OpenBSD en mygateway
(o, si no se está ejecutando Ubuntu, asegúrese de que tiene el nc
comando). Pon esto en tu ~/.ssh/config
:
Host mytarget
ProxyCommand ssh mygateway nc %h %p
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) .
man ssh
revela puerto: host: hostport. Así que inténtalo másssh 80:server.com
o menos.