SSH via le proxy
Si le pare-feu vous le permet, vous pouvez exécuter ssh sur n'importe quel port, mais cela nécessite que le serveur ssh écoute sur ce port. Il est peu probable que le port 80 fonctionne, car la plupart des emplacements dotés de pare-feu analysent le trafic sur ce port et bloquent tout ce qui n'est pas HTTP. Mais le port 443, qui est normalement le port HTTPS, fonctionne souvent, car SSH et HTTPS se ressemblent beaucoup aux logiciels de filtrage, donc votre session SSH ressemblera à une session HTTPS. (Il est possible de distinguer HTTPS et SSH, donc cela ne fonctionnera pas si le pare-feu est suffisamment sophistiqué.)
Si vous avez le contrôle sur le serveur, faites-le écouter sur le port 443 en plus du 22 (le port ssh normal). Vous pouvez configurer le port dans /etc/ssh/sshd_config
: ajouter une ligne
Port 443
en plus du Port 22
qui devrait déjà être là. Notez que cela suppose que le serveur ssh n'est pas également un serveur HTTPS. Si c'est le cas, vous devrez trouver un autre port que le pare-feu vous permet d'utiliser ou trouver un autre serveur ssh (voir le transfert ci-dessous).
Si vous n'avez pas besoin de définir un proxy Web dans votre navigateur Web, vous pouvez essayer de vous connecter directement:
ssh -p 443 myserver.example.com
Si cela fonctionne, définissez un alias dans votre ~/.ssh/config
:
Host myserver
HostName myserver.example.com
Port 443
Si vous devez définir un proxy Web dans votre navigateur Web, dites à ssh de passer par le proxy. Installez le tire-bouchon . Définissez un alias comme celui-ci dans votre ~/.ssh/config
, où http://proxy.acme.com:3128/
est le proxy que vous utilisez pour HTTPS vers l'extérieur (remplacez-le par le nom d'hôte et le port appropriés):
Host myserver
HostName myserver.example.com
Port 443
ProxyCommand /usr/bin/corkscrew proxy.acme.com 3128 %h %p
SSH sur SSH
Si vous pouvez accéder à une machine extérieure par l'une des techniques ci-dessus mais pas à la machine qui vous intéresse, utilisez-la pour transférer une connexion. En supposant que vous pouvez ssh sur une machine appelée mygateway
et que vous souhaitez atteindre le serveur SSH mytarget
, installez netcat-openbsd sur mygateway
(ou, s'il n'exécute pas Ubuntu, assurez-vous qu'il a la nc
commande). Mettez ceci dans votre ~/.ssh/config
:
Host mytarget
ProxyCommand ssh mygateway nc %h %p
SSH à Apache
Si l'hôte auquel vous souhaitez vous connecter exécute déjà Apache et écoute sur le port 443, et que vous avez le contrôle sur cet hôte, vous pouvez configurer cet Apache pour accepter les connexions SSH et les transférer. Voir Tunneling SSH sur HTTP (S) .
man ssh
révèle le port: host: hostport. Alors essayezssh 80:server.com
.