J'espère que quelqu'un pourra m'aider à résoudre ce problème de connexion ssh. Dans mon réseau local domestique, je développe des sites Web et j'ai configuré mon routeur pour qu'il transfère les appels SSH externes vers mon ordinateur portable principal à partir de ce port externe.
Donc, si je suis connecté à l'ordinateur d'un client, j'utiliserai ssh ou scp.
$ ssh -p 7219 sam@mycomcastip
qui fonctionnait bien jusqu'à il y a quelques semaines quand je l'ai mis à jour vers Mojave. Maintenant, la connexion est interrompue. Voici les étapes que j'ai suivies pour isoler le problème :
$ ssh -p 7220 sam@mycomcastip
fonctionne parce que mon routeur le transfère en tant que port 22 vers une machine plus ancienne fonctionnant sous High Sierra. Peut-être mon routeur est-il défectueux ? C'est ce que je pensais, alors j'ai installé OpenWRT dessus (qui est très bon, jusqu'à présent) et je ne peux pas me connecter à l'ordinateur portable depuis l'extérieur comme je le pouvais auparavant.
Peut-être que Comcast bloque le port 7219 ? Si c'était le cas, il bloquerait le port 7220 et il ne le bloque pas. La modification du transfert de port vers un autre port échoue avec le même délai d'attente.
Peut-être que c'est mon démon SSH qui s'est planté ? Changer le transfert de port pour router vers le port 80 de l'ordinateur portable (qui a Apache en cours d'exécution), au lieu de 22 ne donne aucune différence dans le résultat.
Je peux confirmer qu'à l'intérieur de mon réseau local, je peux me connecter en SSH à cet ordinateur portable sans aucun problème. Cela m'assure que le démon ssh de l'ordinateur portable fonctionne. Je n'ai aucun problème à sortir de cette machine par SSH.
Je peux confirmer que le routeur ne fait pas le blocage car je peux exécuter tcpdump sur le routeur en recherchant ce port et il le reçoit et le transmet.
J'ai couru tcpdump
sur cet ordinateur portable et en examinant le PCAP dans Wireshark, je peux voir le paquet arriver sur le port 22 et les tentatives ultérieures de l'opérateur distant pour réessayer la connexion, mais je n'ai pas trouvé le bon tutoriel sur l'analyse d'un paquet pour ce problème afin de m'aider à voir ce qui pourrait être la cause.
41 3.349934 remoteIP 192.168.1.105 TCP 74 45166 22 [SYN] Seq=0 Win=14600 Len=0 MSS=1460 SACK_PERM=1 TSval=1415111467 TSecr=0 WS=512
Peut-être quelqu'un peut-il nous éclairer sur ce que cela signifie ?
J'ai essayé d'installer Mojave sur une autre machine pour voir si c'est un problème de Mojave, mais toutes les autres machines sont trop vieilles pour l'exécuter, donc je ne suis pas en mesure d'isoler que c'est le matériel ou le logiciel sur cette machine. En parlant de cela, ce comportement se produit lorsque j'achemine les données vers l'ordinateur portable via les ports sans fil et Ethernet/Thunderbolt de l'ordinateur portable, ce qui suggère que si c'est le matériel, ce ne sont pas les ports réseau qui causent le problème.
Étant donné que les règles de transfert de port sont les mêmes, à l'exception des ports source et destination, je pense que quelque chose a changé dans Mojave, car c'est le seul changement dont je me souvienne que j'ai apporté à l'ordinateur portable lorsque cette fonctionnalité est tombée en panne.
En cherchant sur Internet, j'ai trouvé le plus proche qui suggère qu'Apple a fermé certains dossiers aux utilisateurs distants. Sauf que, comme le détermine cette affiche, SSH permet de contourner ce blocage, donc ce n'est peut-être pas ça.
https://www.sentinelone.com/blog/mojaves-security-hardening-user-protections-bypassed/
J'ai découvert un clone de cette machine sur High Sierra avant de la mettre à niveau vers Mojave. En utilisant ce clone, le comportement attendu se produit. En exécutant tcpdump sur cet ordinateur portable, je peux voir le TCP passé par le routeur vers cet ordinateur portable à partir du serveur distant et je peux voir mon ordinateur portable est ACK en retour, ce qui confirme ce que j'ai vu lorsque je SSH à distance. Cela semble éliminer le fait que ce soit mon pare-feu sur le routeur qui bloque l'un de ces ports étranges vers cet ordinateur portable. Ce qui indique plus probablement que Mojave bloque le port 22 depuis l'extérieur de son sous-réseau.
Je peux montrer une capture d'écran qui montre que ce pare-feu Mojave est désactivé si c'est important.
C'est pourquoi je pose la question ici, plutôt que sur un autre forum consacré aux réseaux, car il semble que seule la machine Mojave OSX rejette le port 22. Quelles autres étapes de dépannage dois-je essayer ?