Estou atrás de um firewall de rede que não me permite ssh através da porta padrão. Por isso, não posso enviar nenhum ramo bzr para o meu repositório. Gostaria de saber se é possível de alguma forma fazer proxy do ssh através da porta 80 para que eu possa enviar os galhos.
Ouvi dizer que o saca-rolhas permite que você faça isso, mas não sei exatamente como fazer isso.
Se você conhece algum servidor proxy que permita fazer isso, mencione-os.
man ssh
revela port: host: hostport. Então tente maisssh 80:server.com
ou menos.Respostas:
Um bom firewall corporativo inspeciona o tráfego, independentemente da porta, portanto, a mudança de porta pode não funcionar.
Se você tem controle sobre o servidor e ainda deseja experimentá-lo, pode alterar a porta sshd para a porta 80. Aviso Se houver algo mais em execução na porta 80 (no servidor), isso não funcionará e provavelmente significará que você está completamente perca o acesso SSH ao servidor!
Você precisará editar
/etc/ssh/sshd_config
e alterarPort
para80
. Então corraE então conecte:
Seu caminho bzr ficaria assim:
bzr+ssh://host:80/path/
Outro método é usar o WebDav. Isso deve contornar completamente o problema do firewall, porque tudo acontece na porta 80, mas exigirá que você esteja executando o Apache e configure várias coisas:
Uma VPN pode ser uma opção, mas se
ssh
estiver bloqueada, espero que isso também seja excluído.Você pode apenas querer falar com seus administradores de rede. Você precisa fazer algo e eles estão parando você. Se eles tiverem um motivo para bloquear
ssh
, é provável que vejam todas as tentativas extremas de contorná-lo de maneira bastante negativa ...Em suma, pode ser mais seguro conversar com eles.
fonte
Port
linhas, com uma para cada porta no/etc/ssh/sshd_config
arquivo.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 linhaalé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:
Se isso funcionar, defina um alias no seu
~/.ssh/config
: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
, ondehttp://proxy.acme.com:3128/
está o proxy que você usa para o HTTPS para fora (substitua pelo nome do host e pela porta):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 emmytarget
, instale netcat-openbsd emmygateway
(ou, se não estiver rodando Ubuntu, certifique-se que tem onc
comando). Coloque isso no seu~/.ssh/config
: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) .
fonte
Acabei de ler uma solução sofisticada aqui:
http://benctechnicalblog.blogspot.hu/2011/03/ssh-over-connect-over-port-80.html
Você pode SSH em casa na porta 80, mesmo que o servidor doméstico também execute um servidor da web na porta 80.
Supondo que o servidor doméstico execute o Apache. A ideia envolve ativar o mod_proxy no seu servidor e depois restringi-lo à conexão com o localhost (proxy.conf):
Agora você pode fazer uma solicitação de conexão HTTP ao host local e o servidor da web estabelecerá um túnel para você, você só precisa garantir que todo o tráfego passe pelo seu proxy:
Certifique-se de que as conexões do host local ao SSH não sejam privilegiadas (para evitar que estranhos entrem ...)
Isso deve funcionar se você estiver atrás de um roteador que permita apenas a porta 80.
Se você estiver atrás de um proxy (para configurar o proxy no navegador para obter a Web), primeiro será necessário estabelecer um túnel para o seu próprio host e, em seguida, emitir outra solicitação CONNECT dentro desse túnel para chegar ao seu host. Isso é mais sofisticado, você precisará usar 2 netcats para isso.
Tudo é possível, mas faça-o por seu próprio risco ...
ATUALIZAR:
Ou simplesmente, use um aplicativo da web que fornece SSH por meio de um navegador. http://en.wikipedia.org/wiki/Web-based_SSH
fonte
Se você não tiver nenhum controle sobre o servidor para alterar a porta SSH para a porta 80 ou se não puder SSH pela porta 80 porque o firewall o impede de transferir esses dados pela porta 80, tente o TOR.
TOR é uma rede enorme. Seu computador se conecta a outro computador em algum lugar do mundo, que se conecta a outro até atingir o servidor SSH. Tudo isso é compatível com firewall, acontece na porta 443 (que sua empresa não bloqueia, ou então .. bem, isso não é tão inteligente da parte deles). É literalmente apenas um proxy ou VPN enorme, e também é criptografado. Dessa forma, você pode acessar qualquer host em qualquer porta (também o SSH de um servidor na porta 22).
Dê uma olhada on-line em www.torproject.org .
fonte
Sinto muito, tenho que bancar o advogado do diabo.
Sei que provavelmente existe uma razão para fazer isso; no entanto, por que o administrador da rede / firewall não abre a porta específica que você está procurando? Do ponto de vista da segurança, você quer arriscar que a inspeção na Web perca alguma coisa? Se estiver configurado para ignorar a porta 80 para tráfego padrão, e você estiver se colocando em perigo.
Concordo com algumas sugestões acima, onde, como ponto a ponto, a VPN pode ser uma opção mais segura. Novamente, do ponto de vista de segurança, eu gostaria de saber por que você está realmente ignorando as políticas de segurança e por que você não pode colocar seu servidor em um dmz ou em um backbone de acesso. Apenas eu. Boa sorte.
fonte