web-dev-qa-db-fra.com

Comment accéder à mon serveur Linux SSH depuis l'extérieur de mon réseau domestique

J'ai donc parcouru Internet pendant des jours pour essayer de comprendre cela et je ne peux pas le comprendre.

Je sais que ça va être facile.

J'ai donc récemment pris un ancien bureau et chargé le serveur Ubuntu 12.04 dessus. Mon objectif avec ce projet est de créer une zone pour héberger quelques dépôts git et peut-être une simple page Web.

J'ai installé les packages SSH et Apache2 et essayé de les configurer. Pour le moment, je peux me connecter depuis mon ordinateur portable en utilisant ssh [email protected] mais uniquement lorsque je suis sur le même réseau. Une fois que je quitte la maison, je reçois une erreur de temporisation.

Donc, 2 choses que j'aimerais aborder maintenant.

  1. Comment configurer le SSH pour me permettre d'accéder au serveur depuis l'extérieur du réseau.
  2. Obtenir mon nom d'hôte sur le serveur pour que les connexions soient greg @ hostname au lieu de [email protected]

    (J'ai fait le nom d'hôte Sudo et changé le fichier etc/hostname et aucun résultat)

Merci les gars.

25
Greg

Le délai d'expiration externe à votre réseau domestique se produit car l'adresse IP que vous avez spécifiée sera acheminée ailleurs sur les réseaux externes.

Comme d'autres l'ont indiqué, vous devez configurer la redirection de port sur votre routeur (interface externe) vers le serveur SSH. Vous pouvez utiliser le port standard (22) ou tout autre port (supérieur à 1024). Pour le serveur Web, vous devrez définir la redirection de port du port 80 sur l'interface externe vers votre serveur et peut-être le port 443 si vous souhaitez inclure les connexions SSL/TLS.

Je recommande également d'utiliser le fichier de configuration SSH (~/.ssh/config) pour le rendre plus facile lors de l'établissement d'une connexion interne ou externe. Ajoutez quelque chose comme ceci:

Host serverext
Hostname 1.2.3.4
User greg
Port 22

Host serverint
Hostname 192.168.1.10
User greg
Port 22

Remplacez le nom d'hôte de la configuration serverext par l'adresse IP de votre connexion Internet. Si vous utilisez un port non standard pour les connexions SSH externes, modifiez le champ de port pour serverext pour qu'il corresponde à cela.

Remplacez le nom d'hôte de la configuration serverint par l'adresse IP interne de ce serveur sur votre réseau.

Une fois ceci configuré, en conjonction avec la redirection de port, vous pourrez utiliser "ssh serverint" pour vous connecter à votre serveur lorsque vous êtes chez vous et "ssh serverext" pour vous y connecter lorsque vous êtes ailleurs.

Il est possible d'inclure des options de configuration avancées via le fichier de configuration SSH, telles que la tunnelisation des ports et les connexions websocket. Dans le passé, j'ai fait des choses comme ça et redirigé les connexions SSH via des serveurs proxy SOCKS. Je l'ai même fait traverser Tor, mais c'est très lent.

10
Ben