254 votes

Comment rendre un tunnel SSH accessible au public ?

En se référant à こん J'exécute le programme ci-dessous via OpenSSH. (Client : Mac OS X 10.6 | Serveur : Linux Mint) Cependant, le port qui fait l'objet du tunnelage ne fonctionne pas publiquement :

ssh -R 8080:localhost:80 -N root@example.com
  • Le but est que le port local puisse être ouvert sur l'ordinateur distant.
  • Il semble que le côté distant se lie seulement sur localhost au lieu de toutes les interfaces
  • Cela fonctionne en ouvrant le port sur localhost sur l'ordinateur distant, mais lorsque j'essaie d'accéder à l'IP publique de l'ordinateur distant depuis mon ordinateur local, le port ne semble pas être ouvert.

Comment rendre le tunnel public sur l'IP pour que tout le monde puisse y accéder ?

0 votes

Que signifie l'IP public ? Si vous essayez de vous connecter à un ordinateur local par le biais du routeur et via Internet, la plupart des routeurs n'autorisent pas un tel bouclage.

4voto

Je n'ai pas assez de réputation pour commenter dans les sections appropriées, alors j'ajoute une nouvelle réponse.

Attention : si vous définissez GatewayPorts a yes cela fera sshd lier vos transferts à n'importe quelle interface - quelle que soit la configuration du client ( -R, etc.). Cela peut devenir un problème de sécurité si le client suppose qu'il a limité ses transferts à localhost, par exemple. Par conséquent, il faut définir GatewayPorts a clientspecified est généralement ce que vous voulez.

3voto

krlmlr Points 752

Hôtes de saut sont une addition assez récente à OpenSSH. Cela nécessite un accès SSH à l'intermédiaire, mais devrait fonctionner sans configuration supplémentaire.

ssh -J root@example.com remoteuser@localhost -p 8080

Cette commande demande à SSH de se connecter en premier lieu à root@example.com et ensuite, à partir de cette machine, établir une connexion au port 8080 à l'adresse suivante localhost (c'est-à-dire le port qui est tunnelisé depuis l'hôte de saut vers l'hôte distant) sous le nom de remoteuser nom d'utilisateur.

0voto

Brad Mostert Points 1

Si vous voulez mettre la configuration en vous ~/.ssh/config au lieu d'utiliser les paramètres de la ligne de commande, vous pouvez essayer quelque chose comme

Host REMOTE_HOST_NAME RemoteForward \*:8080 127.0.0.1:80

N'oubliez pas de faire en sorte que le pare-feu de l'hôte distant autorise les connexions à 8080 et assurez-vous que l'adresse IP de l'hôte distant est la même que celle du serveur. GatewayPorts de votre /etc/ssh/sshd La configuration n'est pas réglée sur no

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X