J'ai un serveur Odroid XU4 avec Ubuntu 14.04.
J'ai installé le serveur SSH avec apt-get install openssh-server
. Je suis l'IP locale avec hostname -I
, ce qui est 192.168.0.186
, je généré un numéro de port aléatoire: 61354
. J'ai créé un fichier /etc/ssh/authorized_keys
et annexé la clé publique de la machine client: cat /media/stick/id_rsa.pub >> /etc/ssh/authorized_keys
. Après cela, j'ai remplacé le fichier de configuration par nano /etc/ssh/sshd_config
. Je l' ai mis à PasswordAuthentication no
, ListenAddress 192.168.0.186
, Port 61354
, AuthorizedKeysFile /etc/ssh/authorized_keys
. Après cela, j'ai redémarré la machine.
J'ai essayé d'y accéder avec SSH en utilisant ssh 192.168.0.186 -p 61354
sur le client sans succès:, ssh: connect to host 192.168.0.186 port 61354: Bad file number
ce qui est loin d'être un message d'erreur détaillé. J'ai réussi ping 192.168.0.186
, alors l'adresse IP est d'accord. Comment régler ceci?
modifier:
$ ssh -vvv -p 61354 192.168.0.186
OpenSSH_4.6p1, OpenSSL 0.9.8e 23 Feb 2007
debug1: Reading configuration data /c/Users/inf3rno/.ssh/config
debug2: ssh_connect: needpriv 0
debug1: Connecting to 192.168.0.186 [192.168.0.186] port 61354.
debug1: connect to address 192.168.0.186 port 61354: Connection refused
ssh: connect to host 192.168.0.186 port 61354: Bad file number
Sur le serveur que j'ai essayé ps aux | grep sshd
, le serveur ssh est en cours d'exécution. Il existe donc probablement un pare-feu qui empêche le client de se connecter au serveur. Je ne sais pas ce qu'il y a exactement dans l'image du système d'exploitation que j'ai installée à partir d'ici: http://odroid.in/ubuntu_14.04lts/ . J'essaie de savoir si j'ai un pare-feu ou non. (Selon un forum, aucun pare-feu n'est installé.)
J'ai vérifié avec nmap
[inf3rno@inf3rno ~]$ sudo nmap -sS 192.168.0.186 -p 61354
[sudo] password for inf3rno:
Starting Nmap 7.00 ( https://nmap.org ) at 2016-02-07 15:22 CET
Nmap scan report for 192.168.0.186
Host is up (0.0041s latency).
PORT STATE SERVICE
61354/tcp closed unknown
MAC Address: 00:1E:06:30:1E:CE (Wibrain)
Nmap done: 1 IP address (1 host up) scanned in 0.12 seconds
et traceroute
traceroute to 192.168.0.186 (192.168.0.186), 30 hops max, 60 byte packets 1 192.168.0.186 (192.168.0.186) 5.833 ms 5.773 ms 8.347 ms
J'ai essayé un serveur de socket simple en utilisant ce tutoriel: http://www.binarytides.com/netcat-tutorial-for-beginners/
$ nc -l -v 1234 # starting the socket server
$ telnet localhost 1234 # client connection: ok
$ telnet 192.168.0.186 1234 # client connection: refused
C’est donc clairement lié au réseau et je dois probablement vérifier les paramètres du modem. J'ai essayé cela sur une autre machine avec Fedora avec les mêmes résultats.
conclusion
Il s’est avéré que c’est quelque chose qui concerne le réseau. Très probablement, aucun pare-feu n'est installé sur la machine. Il ne s'agit donc pas d'un problème lié au pare-feu. J'ai le même sur une installation Fedora 23. Je pense que c'est quelque chose de général dans le réseau, et probablement causé par le nouveau modem que j'ai eu. J'essaie de vérifier les paramètres du modem, peut-être que je trouve la racine du problème.
sudo iptables -S
listera lesiptables
règles actives .iptables
niufw
installé ni installé sur le serveur (et le client). Selon un post de forum, l'image du système d'exploitation que j'ai installée est fournie sans pare-feu par défaut.ncat 192.168.0.186 61354
? Pouvez-vous essayer avec le service sur le port standard?Réponses:
Vous devez utiliser la
ssh
commande comme décrit dans la page de manuel:le numéro de port DOIT être avant le nom d'hôte / IP, sinon il pourrait ne pas être honoré.
Pour l'erreur réelle, la
connect
fonction est bloquée, comme décrit dans la question sur SO . Vous devez ouvrir le port sur le pare-feu en chemin (traceroute 192.168.0.186
) ou utiliser un port ouvert (si vous n’exécutez pas de serveur https sur le même ordinateur, vous443
devriez l’ouvrir).la source
ssh -vvv -p 61354 192.168.0.186
Malgré la conclusion de la question, j'ai réussi à envoyer des données entre des machines avec le serveur de socket en utilisant les mêmes commandes. Ce que je faisais auparavant, c’est accéder à la page d’administration du modem. Il y a eu un premier processus d'accès, comme le changement de mot de passe, etc. Je n'ai rien changé dans les paramètres, mais la communication a ensuite fonctionné correctement. Je ne sais pas si j'ai mal saisi les commandes ou si cette procédure d'accès a été corrigée, cela n'a pas vraiment d'importance. La racine du problème était autre chose.
Le serveur SSH ne fonctionnant toujours pas après cette partie, j'ai donc commencé à jouer avec la configuration.
J'ai supprimé le
ListenAddress
etPort
du fichier de configuration. Après cela, j'ai reçu lepermission denied (public key)
message à l'aide de lassh 192.168.0.186
commande. La connexion a donc été établie, mais l'authentification a échoué. Il me reste donc du travail à faire, mais au moins, cela a fonctionné.À la fin j'ai enlevé le
AuthorizedKeysFile /etc/ssh/authorized_keys
aussi et déplacé le fichier à l'emplacement par défaut~/.ssh/authorized_keys
et connecté avecssh [email protected]
. Maintenant cela fonctionne correctement. :-)la source