Je suis derrière un pare-feu réseau qui ne me laisse pas passer par le port par défaut. Pour cette raison, je ne peux pas pousser de branches bzr vers mon référentiel. Je voudrais savoir s'il est possible de proxy en quelque sorte le ssh via le port 80 afin que je puisse pousser les branches.
J'ai entendu dire que le tire - bouchon vous permet de faire cela, mais je ne sais pas exactement comment le faire.
Si vous connaissez un serveur proxy qui vous permet de le faire, veuillez le mentionner.
man ssh
révèle le port: host: hostport. Alors essayezssh 80:server.com
.Réponses:
Un bon pare-feu d'entreprise inspectera le trafic quel que soit le port, donc le changement de port risque de ne pas fonctionner.
Si vous avez le contrôle sur le serveur et que vous souhaitez toujours l'essayer, vous pouvez changer le port sshd en port 80. Avertissement Si vous avez quelque chose d'autre en cours d'exécution sur le port 80 (sur le serveur), cela ne fonctionnera pas et vous signifiera probablement complètement perdre l'accès SSH au serveur!
Vous aurez besoin de modifier
/etc/ssh/sshd_config
et de changerPort
pour80
. Ensuite, exécutezEt puis connectez:
Votre chemin bzr ressemblerait alors à quelque chose comme:
bzr+ssh://host:80/path/
Une autre méthode consiste à utiliser WebDav. Cela devrait contourner complètement le problème du pare-feu, car tout se passe sur le port 80, mais il vous faudra exécuter Apache et configurer un certain nombre de choses:
Un VPN pourrait être une option mais s'il
ssh
est verrouillé, je m'attendrais à ce qu'il soit également exclu.Vous voudrez peut-être simplement avoir un mot avec vos administrateurs réseau. Vous devez faire quelque chose et ils vous arrêtent. S'ils ont une raison de bloquer
ssh
, il est probable qu'ils verront toutes les tentatives extrêmes pour le contourner assez négativement ...En bref, il serait peut-être plus sûr de leur parler.
la source
Port
lignes, avec une pour chaque port dans le/etc/ssh/sshd_config
fichier.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 ligneen 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:
Si cela fonctionne, définissez un alias dans votre
~/.ssh/config
: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):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 SSHmytarget
, installez netcat-openbsd surmygateway
(ou, s'il n'exécute pas Ubuntu, assurez-vous qu'il a lanc
commande). Mettez ceci dans votre~/.ssh/config
: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) .
la source
Je viens de lire une solution sophistiquée ici:
http://benctechnicalblog.blogspot.hu/2011/03/ssh-over-connect-over-port-80.html
Vous pouvez SSH home sur le port 80 même si votre serveur domestique exécute également un serveur web sur le port 80.
En supposant que le serveur domestique exécute Apache. L'idée consiste à activer mod_proxy sur votre serveur, puis à le restreindre à la connexion à localhost (proxy.conf):
Vous pouvez maintenant faire une demande de connexion HTTP à l'hôte local et le serveur Web établira un tunnel pour vous, il vous suffit de vous assurer que tout le trafic passe par votre proxy:
Assurez-vous que les connexions localhost à SSH ne sont pas privilégiées (pour éviter de laisser des étrangers entrer ...)
Cela devrait fonctionner si vous êtes derrière un routeur qui n'autorise que la sortie du port 80.
Si vous êtes derrière un proxy (vous devez donc définir un proxy dans votre navigateur pour accéder au Web), vous devrez d'abord établir un tunnel vers votre propre hôte, puis émettre une autre demande CONNECT à l'intérieur de ce tunnel pour accéder à votre hôte. C'est plus sophistiqué, vous devrez utiliser 2 netcats pour cela.
Tout est possible, mais faites-le à vos risques et périls ...
MISE À JOUR:
Ou tout simplement, utilisez simplement une application Web qui vous donne SSH via un navigateur. http://en.wikipedia.org/wiki/Web-based_SSH
la source
Si vous n'avez aucun contrôle sur le serveur pour changer le port SSH en port 80 ou si vous ne pouvez pas SSH sur le port 80 parce que le pare-feu vous empêche de transférer ces données via le port 80, vous pouvez essayer TOR.
TOR est un immense réseau. Votre ordinateur se connecte à un autre ordinateur quelque part dans le monde, cet ordinateur se connecte à un autre jusqu'à ce qu'il atteigne le serveur SSH. Tout cela est compatible avec le pare-feu, cela se produit sur le port 443 (que votre entreprise ne bloque pas, ou bien .. eh bien, ce n'est pas si intelligent d'eux). C'est littéralement juste un énorme proxy ou VPN, et il est également crypté. De cette façon, vous pouvez accéder à n'importe quel hôte sur n'importe quel port (également SSH d'un serveur sur le port 22).
Jetez-y un œil en ligne sur www.torproject.org .
la source
Je suis désolé, je dois jouer l'avocat des démons.
Je sais qu'il y a probablement une raison à cela, mais pourquoi votre administrateur réseau / pare-feu n'ouvrira-t-il pas le port spécifique que vous recherchez? Du point de vue de la sécurité, voulez-vous prendre le risque que l'inspection Web manque quoi que ce soit? S'il est configuré pour contourner le port 80 pour le trafic std, et que vous vous mettez en danger.
Je suis d'accord avec quelques suggestions ci-dessus, où un point à point vpn peut être une option plus sûre. Encore une fois, du point de vue de la sécurité, je serais intéressé de savoir pourquoi vous contournez vraiment les politiques de sécurité et pourquoi vous ne pouvez pas placer votre serveur dans un dmz ou une dorsale pour l'accès. Juste moi. Bonne chance.
la source