Impossible de se connecter au serveur SSH local - numéro de fichier incorrect

1

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_keyset 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 61354sur le client sans succès:, ssh: connect to host 192.168.0.186 port 61354: Bad file numberce 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.

inf3rno
la source
Duplication possible d'une erreur SSH: «Connexion à l'hôte: numéro de fichier
incorrect
sudo iptables -Slistera les iptablesrègles actives .
Jakuje
@Jakuje Il n'y a iptablesni ufwinstallé 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.
Inf3rno
Qu'en est- il ncat 192.168.0.186 61354? Pouvez-vous essayer avec le service sur le port standard?
Jakuje
@Jakuje Connection a refusé, si je dois l'utiliser sur le client ...
inf3rno 7/02/16

Réponses:

0

Vous devez utiliser la sshcommande comme décrit dans la page de manuel:

ssh -p 61354 192.168.0.186

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 connectfonction 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, vous 443devriez l’ouvrir).

Jakuje
la source
Encore mauvais numéro de fichier ...
inf3rno
poster à la question éditée toute la sortie dessh -vvv -p 61354 192.168.0.186
Jakuje
J'ai édité la question.
Inf3rno
Comment puis-je savoir si j'ai un pare-feu ou pas? Selon un forum que j'ai lu, il n'y a pas de pare-feu dans l'image os installée sur l'appareil.
Inf3rno
J'ai ajouté une note pour savoir ce qui se passe dans votre réseau. Il semble que plus de pare-feu matériel sur le périphérique réseau (routeur?), Pas de logiciel sur la machine finale.
Jakuje
0

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.

Après cela, j'ai remplacé le fichier de configuration par nano / etc / ssh / sshd_config. Je l'ai défini sur PasswordAuthentication no, ListenAddress 192.168.0.186, port 61354, AuthorizedKeysFile / etc / ssh / allowed_keys.

J'ai supprimé le ListenAddresset Portdu fichier de configuration. Après cela, j'ai reçu le permission denied (public key)message à l'aide de la ssh 192.168.0.186commande. 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_keysaussi et déplacé le fichier à l'emplacement par défaut ~/.ssh/authorized_keyset connecté avec ssh [email protected]. Maintenant cela fonctionne correctement. :-)

inf3rno
la source
1
Les ports supérieurs à 32 000 sont destinés aux connexions client, il est préférable de rester en dessous avec un service. Pour
créer