Configuration de SSH sur Internet sur mon Pi

16

Cela pourrait être une question simple, mais comme j'ai lu des informations contradictoires provenant de plusieurs ressources (quoi? Des contradictions sur Internet?), Je voulais savoir si j'avais fait tout ce que j'étais censé faire.

Je souhaite donc configurer une connexion SSH à mon RasPi afin de pouvoir y accéder via Internet.

  1. J'ai commencé par activer SSH sur le Pi, en exécutant Raspbian, en utilisant l' raspi-configoutil.
  2. Ensuite, j'ai installé le client no-ip.com sur mon Pi pour avoir un nom d'hôte pointant vers mon adresse IP dynamique.
  3. J'ai recherché mon IP LAN sur ma framboise en utilisant ifconfig
  4. Enfin, dans l'utilitaire de configuration de mon routeur, sous la redirection de port, j'ai activé la redirection du port 22 dans TCP et UDP vers l'IP locale de mon pi.

Après cela, je n'arrive pas à SSH sur mon pi via Internet. Cela fonctionne lorsque j'essaie de me connecter à l' intérieur de mon réseau local en utilisant mon adresse IP locale, mais pas en utilisant mon nom d'hôte ou mon adresse IP Internet. J'ai également essayé de me connecter à partir d'un emplacement différent et rien ne fonctionne.

Ma question: manque-t-il des étapes? Existe-t-il des fichiers de configuration que je devrais modifier sur mon pi pour que tout fonctionne?

Zeta
la source
Veuillez inclure la sortie de iptables -Lsur votre Pi.
deed02392
1
Avez-vous déjà résolu ce problème? Si oui, pourriez-vous marquer la réponse qui l'a résolu ou créer une auto-réponse indiquant ce que vous avez fait et ensuite marquer cela comme réponse? Ce serait formidable car nous essayons d'obtenir le rapport Q: A du site et cette question semble avoir été laissée pendant un certain temps sans vous @Zeta. Merci!
RPiAwesomeness
J'utilise no-ip.com pour me connecter à mon Pi sur Internet pour le web et ssh donc c'est possible, peut-être que votre routeur ou FAI bloque le trafic entrant?
Alastair Montgomery
Cela ressemble beaucoup à un routeur qui ne prend pas en charge le bouclage NAT.
flakeshake
j'ai trouvé ce lien: raspberryanywhere.com Peut-être qu'il peut être utile. J'utilise le service depuis plusieurs semaines et cela fonctionne très bien! Le lien fournit un logiciel simple de visualisation d'équipe, comme pour accéder à votre carte framboise où que vous soyez. De plus, vous pouvez utiliser votre client SSH habituel; ils fournissent simplement une adresse virtuelle pour se connecter à votre carte via SSH ou HTTP. Cela vaut la peine d'essayer à coup sûr!
Stefano Stefano

Réponses:

12

Si vous prévoyez uniquement de vous connecter à votre Raspberry Pi via SSH sur Internet, ngrok.com peut probablement répondre à votre problème de la manière la plus confortable.

Il transfère vos ports avec une sorte de tunnel inversé et peut même aider à contourner les pare-feu ou les restrictions de votre FAI. Vous devez vous inscrire (gratuitement) sur le site pour transmettre le trafic TCP.

Je ne suis d'aucune façon affilié à ce projet; Je viens de l'utiliser pour accomplir la même idée (dans mon cas, transmettre un serveur OpenVPN) et je n'ai jusqu'à présent rencontré aucun problème.

Slubbix
la source
J'ai aussi eu ce problème et j'ai utilisé serveo.net encore plus facilement que ngrok. Totalement gratuit, 0 config il suffit de coller la commande 22 ports avec un alias personnalisé puis de se connecter.
Madhava Jay
3

Une partie de votre problème pourrait être dû au fait que le Pi utilise une IP dynamique du DHCP sur votre routeur, la redirection de port que vous avez configurée ne fonctionne pas, car l'IP locale du Pi a changé.

Le moyen le plus simple de résoudre ce problème (du moins que j'ai vu) est de configurer une adresse IP statique. C'est relativement simple, tant que cela ne vous dérange pas de nettoyer dans un fichier de configuration. Vous pouvez lire un peu plus en profondeur ici et ici . J'expliquerai également la manière simple ci-dessous:

  1. Connectez-vous à votre Pi via SSH au sein de votre réseau domestique ou via un écran, cela fonctionne.

  2. Prenez un stylo et du papier, vous allez écrire des informations.

  3. Exécutez la commande ifconfig. Je sais que vous l'avez déjà exécuté, mais nous devons collecter un peu plus d'informations que votre adresse IP locale cette fois. Cela révèle les informations de votre routeur, le bit que vous voulez est après eth0 (la connexion Ethernet). . . .

    eth0      Link encap:Ethernet  HWaddr b8:27:eb:b3:fc:2c
              inet addr:192.168.1.81  Bcast:192.168.1.255  Mask:255.255.255.0
    

    Notez les informations suivantes ...

    inet addr – 192.168.1.81 (Pi's Current IP Address)
    Bcast –  192.168.1.255 (The Broadcast IP Range)
    Mask –  255.255.255.0 (Subnet Mask Address)
    

    Évidemment, vos informations seront différentes de ce tutoriel, alors assurez-vous d'utiliser vos informations à partir de la ifconfigcommande exécutée sur le Pi.

  4. Maintenant, lancez netstat -nrou route -n. Nous avons besoin:

    Adresse 'Gateway' - 192.168.1.254 Adresse
    'Destination' - 192.168.1.0

  5. Maintenant que nous avons ces informations, nous pouvons modifier le fichier d'interface pour configurer l'IP dynamique. Courez sudo nano /etc/network/interfaces. Cela devrait ressembler à ceci:

    fichier d'interface

  6. Changez de ligne:

    iface eth0 inet dhcp
    

    à

    iface eth0 inet static
    

    Ensuite, directement sous cette ligne, entrez les informations suivantes ( veuillez noter. Vous aurez besoin de vos propres adresses que nous avons rassemblées ci-dessus ). . . .

    address 192.168.1.81
    netmask 255.255.255.0
    network 192.168.1.0
    broadcast 192.168.1.255
    gateway 192.168.1.254
    

    Fondamentalement, la partie adresse est ce que vous voulez que votre adresse IP soit. Plus c'est élevé, mieux c'est, car il y a moins de risques de conflits IP. netmask - L'adresse "Mask" que nous avons notée plus tôt.

    réseau - L'adresse IP du routeur, c'est l'adresse de «destination» trouvée plus tôt. Vous pouvez également saisir cela sur votre routeur, il devrait dire quelque part sur le côté.

    broadcast - L'adresse «Bcast» que nous avons notée plus tôt.

    passerelle - Il s'agit de l'adresse «passerelle» que nous avons trouvée précédemment.

    Appuyez sur Ctrl+ Oet ou Enterou Ypuis Enter. Une fois que vous avez fait cela, appuyez sur Ctrl+ X.

  7. Exécutez sudo rebootet votre IP doit être en place! Reconnectez-vous et exécutez à ifconfignouveau la commande, et elle devrait ressembler à ceci maintenant:

    fantaisie!

Configurez ensuite votre redirection de port vers votre nouvelle adresse IP statique, et tout devrait fonctionner! Bonne chance!

RPiAwesomeness
la source
2
La personne qui a voté contre pourrait-elle expliquer pourquoi? Je pense que c'est une solution parfaitement valable et réalisable. Je voudrais savoir pourquoi afin que je puisse améliorer ma réponse.
RPiAwesomeness
1
Cela ne fonctionnera que sur le réseau local et non de l'extérieur. OP a demandé comment se connecter à Pi via Internet et non depuis le même réseau.
Chinmay Sarupria du
Une adresse comme 192.168.1.100 est une adresse locale, je pourrais avoir 2 Pi dans 2 parties différentes de la ville avec la même adresse locale. Alors bien sûr, je ne pourrai accéder à aucun d'eux depuis l'extérieur du réseau.
Chinmay Sarupria
Si vous donnez à votre RPi une adresse IP statique, vous devez l'exclure du pool DHCP, sinon un autre appareil de votre réseau pourrait l'obtenir et vous aurez un conflit IP.
Dmitry Grigoryev
2

La seule chose que vous semblez avoir mal configurée est que SSH est un protocole TCP uniquement, vous n'avez donc pas besoin de transférer le trafic UDP sur le port 22.

Maintenant, pourquoi cela ne semble pas fonctionner, c'est probablement parce que votre routeur ne prend pas en charge le bouclage NAT . Cela signifie que les règles NAT (telles que celle de transfert) ne s'appliquent pas lorsque l'origine de la connexion provient de votre LAN interne. Tous les routeurs n'ont pas cette fonction activée. Ainsi, si votre routeur ne prend pas en charge le bouclage NAT, vous ne pourrez pas vous connecter à votre RPi à l'aide de SSH lorsque vous utilisez le nom de domaine no-ip.com et lorsque vous le faites à partir de votre LAN .

Pour essayer si votre configuration fonctionne, si vous avez un smartphone avec une connexion de données (3G, LTE, etc.) et qu'il y a un client ssh dessus, essayez de vous connecter à votre RPi en utilisant le plan de données et non votre connexion WiFi. Si vous n'avez pas de client ssh dessus et que vous êtes autorisé à utiliser le partage de connexion, utilisez votre smartphone avec l'un de vos ordinateurs en le débranchant pour votre réseau local et en utilisant le lien de partage à la place.

Huygens
la source
0

Essayez d'utiliser un nom de domaine gratuit, par exemple co.cc ou similaire, et freeDNS (ils fournissent également une large gamme de sous-domaines) pour pointer vers votre routeur. Je pense que vous pouvez également obtenir un script de mise à jour au cas où votre routeur aurait une IP dynamique.

Si cela ne fonctionne pas, les paramètres de la redirection de port sont peut-être incorrects? Quel type de routeur avez-vous?

Samadi
la source
Try using a free domain name...C'est ce qu'il a fait, c'est ce que le client no-ip est. C'est beaucoup plus simple que d'avoir à jouer avec le DNSing manuel et les routeurs.
RPiAwesomeness
@RPiAwesomeness Désolé, je ne le savais pas.
Samadi
Aucun problème. Je faisais juste mon devoir d'être membre de Stack Exchange et de modérer le site. C'est juste un peu de critique utile. S'il vous plaît ne le prenez pas comme une agression contre vous, j'essaie simplement de garder le contenu de ce site utile et informatif. Veuillez continuer à aider et à répondre aux questions et à vous impliquer, vous commencerez à l'obtenir. :) De plus, entrez de temps en temps dans le chat. Les gens qui aiment leur entreprise aiment avoir de la compagnie, et cela montre que ce site est utile et prospère et a une bonne base d'utilisateurs impliqués.
RPiAwesomeness
0

J'ai cette situation ici en Finlande: rpi est connecté au routeur wifi mobile, huawei e5776, et je veux me connecter à rpi avec SSH sur Internet, sans succès jusqu'à présent et enfin je sais que c'est mon fournisseur de services Internet qui bloque les connexions bidirectionnelles pour clients du haut débit mobile. Le trafic bidirectionnel pour eux est un service supplémentaire (que vous devez payer) appelé open gate par mon FAI. Alors rendez-vous sur votre propre site FAI pour voir si c'est le cas.

beaucoup d'heures
la source
0

Slubbix a signalé un problème possible que l'adresse IP locale du Raspberry Pi n'est pas corrigée. Cela rendrait le port de votre routeur non fiable. Par défaut, le Raspberry Pi est configuré pour utiliser DHCP. Cela signifie que l'IP est donnée par le routeur. Cette IP n'est pas non plus fixe par défaut.

Une solution à ce problème est déjà indiquée par Slubbix : réparer l'IP du Raspberry Pi.

À mon avis, cela présente deux inconvénients: il n'y a pas de liste globale d'adresses IP dans votre réseau qui soit facilement maintenue et vous ne pouvez pas utiliser votre Raspberry Pi dans un autre réseau (IP déjà utilisée ou sous-masque différent).

C'est pourquoi je vous propose de faire ce qui suit: configurer votre routeur pour attribuer une IP fixe à l'adresse MAC de votre Raspberry Pi. L'adresse MAC peut être trouvée à l'aide de la commandeifconfig

Wouter van der Put
la source
0

L'adresse IP locale de votre Raspberry Pi n'est pas fixe, sauf si vous utilisez un adaptateur sans fil pour vous connecter, qui conservera son adresse IP. Si vous souhaitez utiliser SSH pour le RPI, vous pouvez utiliser ces étapes:

Démarrez votre Pi à l'invite du terminal. Tapez la commande suivante "sudo apt-get install xrdp" Si promu entrez votre mot de passe (la valeur par défaut est "framboise") Tapez "Y" et appuyez sur Entrée. Ceci installe maintenant xrdp sur votre Pi qui est le logiciel que nous allons utiliser pour la connexion au bureau à distance. Attendez qu'il se termine. Redémarrez votre Pi. Nous allons vérifier que xrdp va démarrer automatiquement. Lorsque votre Pi a démarré à l'invite de commande, recherchez [ok] Démarrage du serveur Remote Desktop Protocol: xrdp sesman. Cela vous montre que xrdp est installé et démarre automatiquement au démarrage de votre Pi La dernière étape consiste à noter l'adresse IP de votre Pi qui devrait également être affichée sur l'écran de démarrage. Dans mon cas ci-dessous, c'est 192.168.1.9.

Configuration de la deuxième machine

  1. Lancez Remote Desktop Connection qui se trouve dans Démarrer-> Tous les programmes-> Accessoires-> Remote Desktop Connection
  2. Tapez l'adresse IP de votre Pi que vous avez notée ci-dessus.

  3. Cliquez sur Connecter (vous pouvez obtenir un avertissement de sécurité à ce stade, cliquez simplement sur OK si vous le faites. Après tout, c'est votre Pi sur votre réseau, donc rien à craindre pour la sécurité).

  4. Laissez le module sur la valeur par défaut de sesman-Xvnc et entrez votre nom d'utilisateur et mot de passe pour votre Pi. (La valeur par défaut est pi et framboise si vous ne les avez pas modifiées).

  5. Cliquez sur OK et après quelques instants, vous devriez être accueilli sur le bureau de votre Raspberry Pi!

  6. Lorsque vous avez terminé, déconnectez-vous simplement du bureau du Pi.

J'ai trouvé ces pas d' ici et ils ont travaillé pour moi

Voici une autre façon d'utiliser SSH:

SSH dans Raspberry Pi Je me connecte généralement à mon Raspberry Pi via SSH ou Secure Shell pour lui donner son nom complet. Cela permet l'accès en ligne de commande, à votre Raspberry Pi, à partir d'un autre ordinateur. Bien qu'il soit possible de SSH dans le Raspberry Pi de n'importe où dans le monde, et je le fais, ce post ne couvre que l'accès SSH sur le réseau local. Je couvrirai la connexion à distance dans un futur article de blog.

Bien que cela ne donne pas accès à une interface graphique (interface utilisateur graphique), avoir accès à la ligne de commande me permet généralement de faire 95% de ce que je dois faire. Les 5% restants que je pourrais probablement faire via SSH, mais parfois vous ne pouvez pas battre le confort d'une interface graphique. :-)

Tout d'abord, vous devez connaître l'adresse IP du Raspberry Pi auquel vous souhaitez vous connecter. Si vous ne savez pas comment le trouver, lisez mon article de blog expliquant comment vous pouvez le faire à distance en utilisant un excellent outil appelé nmap.

Pour SSH dans votre Raspberry Pi à partir d'un ordinateur Linux ou Apple Mac, c'est très simple. Vous pouvez simplement taper votre nom d'utilisateur et votre adresse IP dans la ligne de commande en utilisant le format suivant:

nom d'utilisateur ssh @ IPaddress

Assurez-vous de remplacer le nom d'utilisateur par le nom d'utilisateur avec lequel vous souhaitez vous connecter à l'ordinateur distant. L'adresse IP doit prendre le format 192.168.1.66

Vous pouvez recevoir un message expliquant que l'authenticité de l'hôte ne peut pas être établie et si vous êtes sûr de vouloir continuer à vous connecter. Vous ne verrez ce message que la première fois que vous vous connecterez à votre Raspberry Pi. Tapez simplement oui.

Il vous sera alors demandé votre mot de passe, entrez le mot de passe du nom d'utilisateur avec lequel vous essayez de vous connecter.

Pour Windows, c'est un peu plus compliqué à configurer car cela nécessite un logiciel supplémentaire appelé PuTTY. Cependant, une fois installé, c'est vraiment simple à utiliser.

Rendez-vous d'abord sur le site Web de PuTTY, www.putty.org, téléchargez et installez le logiciel.

Une fois installé, chargez PuTTY

Sous Nom d'hôte (ou adresse IP), saisissez l'adresse IP à laquelle vous souhaitez vous connecter. Sélectionnez le bouton radio SSH. Dans la zone sous Sessions enregistrées, saisissez un nom pour identifier cet ordinateur, tel que Raspberry Pi, puis cliquez sur Enregistrer. Cliquer sur Ouvrir devrait maintenant démarrer votre session SSH.

La prochaine fois que vous voulez SSH dans votre Raspberry Pi, il vous suffit de charger PuTTY, cliquez sur la session enregistrée pour la mettre en surbrillance, puis cliquez sur Ouvrir. Une fois que vous avez tapé votre mot de passe, lorsque vous y êtes invité, vous avez accès à distance à votre Raspberry Pi.

J'ai trouvé ces instructions d' ici

Humain
la source
Je ne vois pas comment ces instructions aident à accéder au RPi sur Internet
Dmitry Grigoryev
0

Une chose que j'ai remarquée pour mon Internet est que lorsque je transfère le port de mon serveur Web et que j'essaie de me connecter à l'aide de mon IP publique, cela signifie qu'il n'est pas disponible, mais lorsque je me connecte à celui-ci sur mon téléphone ou sur le réseau de mon école Je suis en mesure de me connecter à celui-ci, également une chose que vous pourriez essayer de faire est d'aller sur google et de taper "IP" dans la barre de recherche, de copier l'ip qu'il vous donne et ensuite d'aller sur google traduire et coller dans votre ip, et puis cliquez sur l'adresse IP bleue dans la fenêtre de droite, et cela devrait vous montrer si vous avez réussi à transférer votre serveur Web.

Austinthemighty
la source
0

Pour autoriser le trafic entrant sur le port SSH par défaut (22), vous pouvez demander à iptables d'autoriser tout le trafic TCP sur ce port.

sudo iptables -A INPUT -p tcp --dport ssh -j ACCEPT

En vous référant à la liste ci-dessus, vous pouvez voir que cela indique à iptables:

  1. ajouter cette règle à la chaîne d'entrée ( -A INPUT) afin que nous regardions le trafic entrant
  2. vérifiez s'il s'agit bien de TCP ( -p tcp).
  3. si c'est le cas, vérifiez si l'entrée va au port SSH ( --dport ssh).
  4. si c'est le cas, acceptez l'entrée ( -j ACCEPT).

J'espère que cela fonctionne pour vous aussi, vous voudrez peut-être ajouter les ports ftp qui sont 20-21, changez simplement les ports sshvers 20et 21.

Austinthemighty
la source
0

Je ne sais pas si cette question nécessite des réponses supplémentaires, mais c'est assez simple.

  1. Installez OpenSSH ou activez-le depuis raspi-config

  2. Accédez à la page d'accueil de votre routeur / pare-feu dans mon cas 192.168.1.1

  3. Recherchez la redirection de port ou les serveurs virtuels et ajoutez quelque chose comme ceci:

    Début du port externe: 1234 Fin du port externe: 1234

    Début et fin du port interne 22.

    L'IP du serveur est l'IP statique de votre RPi dans mon cas 192.168.1.50

  4. Une fois que tout est configuré côté routeur, notez votre IP WAN en recherchant votre IP sur Google.

  5. Vous devriez maintenant pouvoir SSH vers le pi via Internet. Dans mon cas, j'utilise un Chromebook et le module shell sécurisé. Je tape le nom d'utilisateur dans mon cas pi@mywanipet le port 1234.

Fondamentalement, la règle de pare-feu de l'étape 3 transfère tout le trafic sur le port 1234 de l'IP WAN vers le port 22 de l'IP LAN local.

Hani Umer
la source
-1

J'ai eu beaucoup de mal à configurer SSH via Internet jusqu'à ce que je trouve cette méthode simple:

http://raspctl.com

Enregistrez et copiez-collez simplement les commandes. Vous devrez peut-être modifier un fichier de configuration, mais c'est tout. Je l'ai testé aujourd'hui et cela fonctionne comme un charme. Je l'ai également essayé avec différentes applications Android SSH.

alkopop79
la source
J'ai oublié de mentionner: définissez la redirection de port sur votre routeur!
alkopop79
1
FYI: Ce projet semble avoir été interrompu.
bobstro