SSH através do proxy
Se o firewall permitir, você poderá executar o ssh em qualquer porta, mas isso exige que o servidor ssh esteja escutando nessa porta. É improvável que a porta 80 funcione, porque a maioria dos locais com firewalls analisa o tráfego nessa porta e bloqueia qualquer coisa que não seja HTTP. Mas a porta 443, que normalmente é a porta HTTPS, geralmente funciona, porque o SSH e o HTTPS se parecem muito com o software de filtragem, portanto, a sua sessão SSH se parecerá com uma sessão HTTPS. (É possível distinguir HTTPS e SSH, para que isso não funcione se o firewall for sofisticado o suficiente.)
Se você tiver controle sobre o servidor, faça com que ele escute na porta 443 além da 22 (a porta ssh normal). Você pode configurar a porta em /etc/ssh/sshd_config
: adicione uma linha
Port 443
além do Port 22
que já deveria estar lá. Observe que isso pressupõe que o servidor ssh também não seja um servidor HTTPS. Se for, você precisará encontrar outra porta que o firewall permita que você use ou encontrar outro servidor ssh (consulte o encaminhamento abaixo).
Se você não precisar definir um proxy da web em seu navegador, tente conectar-se diretamente:
ssh -p 443 myserver.example.com
Se isso funcionar, defina um alias no seu ~/.ssh/config
:
Host myserver
HostName myserver.example.com
Port 443
Se você precisar definir um proxy da web em seu navegador, diga ao ssh para passar pelo proxy. Instale o saca-rolhas . Defina um alias como este no seu ~/.ssh/config
, onde http://proxy.acme.com:3128/
está o proxy que você usa para o HTTPS para fora (substitua pelo nome do host e pela porta):
Host myserver
HostName myserver.example.com
Port 443
ProxyCommand /usr/bin/corkscrew proxy.acme.com 3128 %h %p
SSH sobre SSH
Se você puder acessar uma máquina externa usando uma das técnicas acima, mas não a máquina na qual está interessado, use-a para encaminhar uma conexão. Assumindo que você pode ssh para uma máquina chamada mygateway
e você quer alcançar o servidor SSH em mytarget
, instale netcat-openbsd em mygateway
(ou, se não estiver rodando Ubuntu, certifique-se que tem o nc
comando). Coloque isso no seu ~/.ssh/config
:
Host mytarget
ProxyCommand ssh mygateway nc %h %p
SSH para Apache
Se o host ao qual você deseja se conectar já estiver executando o Apache e estiver escutando na porta 443, e você tiver controle sobre esse host, poderá configurá-lo para aceitar conexões SSH e encaminhá-las. Consulte Encapsulando SSH sobre HTTP (S) .
man ssh
revela port: host: hostport. Então tente maisssh 80:server.com
ou menos.