Connexion au serveur Ubuntu via SSH en externe

24

J'ai récemment installé Ubuntu Server 12.04 (Precise Pangolin) et je compte l'utiliser principalement comme serveur de fichiers. Je suis complètement nouveau sur Linux, donc c'est une très grande courbe d'apprentissage. Hier, j'ai pu configurer PuTTY sur ma machine Windows 7 en utilisant une paire de clés SSH pour pouvoir administrer Ubuntu Server à partir de mon ordinateur. bureau. Cela fonctionne très bien à condition que les deux machines soient sur le même réseau.

Dans le cas de mon ordinateur portable ( MacBook Air ), il se peut que ce ne soit pas toujours sur le même réseau. Est-il possible de se connecter au serveur Ubuntu à partir de mon ordinateur portable via SSH sur un autre réseau?

J'ai installé le démon avahi pour que le nom d'hôte du serveur soit diffusé sur le réseau local et configuré le routeur pour qu'il attribue toujours la même adresse IP au serveur. En dehors de cela, la seule chose que j'ai installée sur le serveur est OpenSSH où j'ai désactivé l’authentification par mot de passe pour que vous puissiez uniquement vous connecter. en utilisant une paire de clés.

Je pensais pouvoir faire quelque chose comme ça depuis le terminal sur mon ordinateur portable:

ssh my.external.ip.address [email protected]

Lorsque j'essaie cette commande, j'obtiens l'erreur suivante:

  

ssh: connectez-vous à l'hôte my.external.ip.address du port 22: l'opération a expiré

J'ai aussi essayé

ssh my.external.ip.address [email protected]

et je reçois le même message d'erreur qu'auparavant. Cela devrait vous donner une idée de ce que j'essaie de faire, mais est-ce possible, et si c'est le cas, comment le faire?

En supposant que je puisse configurer une connexion externe via ssh à partir de mon ordinateur portable, il est possible que mon FAI modifie mon adresse IP externe, ce qui interromprait la connexion externe. Je voudrais pouvoir me connecter de manière robuste, c'est-à-dire que si mon FAI change l'adresse IP externe, je pourrai toujours me connecter à distance au serveur sans avoir à connaître la nouvelle adresse IP externe.

    
posée Aesir 29.08.2012 - 12:16
la source

2 réponses

23

Tout d’abord, la commande correcte est la suivante: ssh [email protected]

Et le routeur doit être configuré pour transférer le port SSH 22 vers l’adresse IP locale de votre serveur.

Pour plus de débogage:

1) Vérifiez que le port 22 (SSH) est ouvert sur votre serveur et sur le routeur (redirection de port).

2) Vérifiez que le serveur SSH est exécuté sur votre serveur

3) Utilisez ping , ssh -v lors de la connexion et regardez /var/log/auth.log pour déboguer les autres problèmes de connexion.

1) Sur votre routeur: suivez les instructions spécifiques au routeur

Sur votre serveur: sudo ufw status (sauf si vous utilisez un autre utilitaire de configuration de pare-feu) ou sudo iptables -L (méthode générale, mais sortie complexe)

Pour ouvrir le port 22: sudo ufw allow 22

cf lien

2) Vérifiez qu'il est installé: dpkg -l openssh-server

Vérifiez qu'il est en cours d'exécution: service ssh status ou ps aux | grep sshd

3) Sur le client connecté:

Sur le serveur:

  • sudo less /var/log/auth.log

Vous pouvez également vérifier les journaux du routeur si nécessaire.

Voici un scanner de port en ligne: lien

Je pense que vous pouvez utiliser des outils comme nmap ou autre, mais je ne les connais pas encore.

Traitement d’une adresse IP externe changeante:

1) Obtenez un compte dynDNS ou similaire: lien

Listes de fournisseurs DNS dynamiques:

2) Une autre solution consiste à configurer un travail crontab, qui vous envoie régulièrement votre adresse IP externe ou entre dans un service de stockage en ligne tel que Dropbox.

Voici un script que mon ami utilise:

    #!/bin/bash
    # Bash script to get the external IP address
    MYWANIP=$(curl http://mire.ipadsl.net | sed -nr -e 's|^.*<span class="ip">([0-9.]+)</span>.*$|| p')
    echo "My IP address is: $MYWANIP"

    IPold=$(cat /home/USER/Dropbox/test.txt)
    echo "Previous IP Address: $IPold"

    if [[ $IPold != $MYWANIP ]] ;
    then
      echo "New IP"
      rm /home/USER/Dropbox/test.txt
      echo $MYWANIP >> /home/USER/Dropbox/test.txt;
      echo $MYWANIP;
    else
      echo "Same IP";
    fi

    # example crontab entry:
    ## m h  dom mon dow   command
    ## */10 * * * * /home/USER/Dropbox/test_ip.sh

Redirection du port du routeur:

1) D'abord, déterminez l'adresse IP locale de votre routeur en exécutant:

ip route | grep default

C'est généralement quelque chose comme 192.168.x.x.

Autres moyens et autres solutions d’OS:

2) En utilisant un ordinateur connecté localement au routeur, accédez à l'adresse IP trouvée précédemment, par exemple via lien . Cela devrait faire apparaître l'interface de configuration du routeur.

3) Les étapes suivantes varient en fonction de votre routeur. Voici comment cela se fait sur un routeur avec OpenWRT par exemple:

lien

    
réponse donnée KIAaze 29.08.2012 - 12:57
la source
2

Par défaut dans Ubuntu (Desktop), SSH n’est pas installé.

Vous pouvez l’installer par la commande suivante dans Terminal:

sudo apt-get install openssh-server
    
réponse donnée kenorb 04.07.2013 - 16:36
la source

Lire d'autres questions sur les étiquettes