Les réponses au ping et une connexion SSH refusée peuvent être vraies en même temps, et le couple n’incrimine pas le tunnel. Les réponses d’écho et une connexion TCP au port 22 sont des tests différents avec des sélecteurs différents, des politiques différentes et souvent des destinations différentes. Capturez une tentative SSH délibérée, puis nommez la dernière étape qu’elle a atteinte. Cet unique artefact remplace une douzaine de changements de configuration spéculatifs.

Capturez une tentative, pas une séance de tâtonnements

Lancez le client une fois avec des diagnostics détaillés, le partage de connexion désactivé et un délai de connexion borné. Désactiver le partage compte, car une connexion maître déjà authentifiée répondrait sinon à la place de la nouvelle tentative et masquerait la panne que vous traquez.

ssh -4 -vv -o ControlPath=none -o ConnectTimeout=10 [email protected]

Conservez la destination, la famille d’adresses, l’horodatage et la dernière erreur non secrète. L’indicateur IPv4 signifie aussi que cette tentative ne dit rien d’un chemin IPv6 vers le même nom, alors ne généralisez pas à partir d’elle. Notez d’où la tentative a été faite. Une vérification sur la passerelle VPN n’est pas le même point de vue qu’un portable derrière elle, et la plupart des contradictions dans ces tickets viennent de mélanger les deux.

Étapes un et deux : TCP avant SSH

La première frontière est l’accessibilité de la socket : une adresse, un port et une route que le paquet suit réellement. Si la connexion TCP n’aboutit jamais, rien au-dessus n’existe encore, et les clés d’hôte et les comptes sont sans pertinence.

nc -vz 10.90.4.20 22
ip route get 10.90.4.20
tcpdump -ni any 'host 10.90.4.20 and port 22'

Corrélez la capture avec la tentative du client. Un SYN qui part sans rien revenir pointe vers un filtrage, des sélecteurs ou une route manquante de l’autre côté ; une réponse avec réinitialisation pointe vers quelque chose qui refuse activement au lieu de jeter. La deuxième frontière est l’échange du protocole SSH lui-même. Une connexion TCP qui aboutit puis cale a dépassé l’accessibilité et est entrée en négociation, en réponse du serveur ou en traitement de paquets. C’est une autre enquête, et c’est là que les problèmes liés à la taille deviennent plausibles pour la première fois.

Étape trois : quelle clé a répondu

Une fois le transport établi, le client vérifie la clé d’hôte du serveur. Un rejet ici est une affirmation sur l’identité, pas sur la cryptographie : le pair a présenté une clé que votre politique n’accepte pas. Traitez cela comme une condition d’arrêt et vérifiez hors bande, auprès de la console ou de l’opérateur qui a reconstruit l’hôte. Supprimer l’entrée mémorisée pour effacer l’avertissement est le seul raccourci à refuser, car il détruit la preuve que quelque chose a répondu de façon inattendue.

Si l’hôte a réellement été reconstruit, retirez l’enregistrement obsolète seulement après confirmation de la nouvelle empreinte, et notez la date et la raison. L’ingénieur suivant rencontrera le même avertissement et a besoin de ce contexte.

Étapes quatre et cinq : compte contre autorisation

L’authentification est la quatrième frontière. Des identifiants refusés signifient que le serveur a évalué la tentative et l’a refusée ; vérifiez le compte, le type d’identifiant accepté par le serveur et la politique du serveur lui-même plutôt que le mot de passe VPN. La cinquième frontière est l’autorisation après une connexion réussie. Un utilisateur authentifié peut encore se voir refuser un shell, une commande, un sous-système ou un transfert, et ces refus ressemblent à des pannes pour qui ne lit que la dernière ligne du client.

Last stage reachedWhat it provesWhere to look next
No TCP connectionNo SSH transport existsAddress, port, route, selectors, filter, listener
TCP up, exchange incompleteReachability is not the blockerServer response, negotiation, packet handling
Host identity rejectedThe peer is not the expected hostIndependently verified host key
User authentication rejectedThe attempt reached authenticationAccount, credential and server policy
Authenticated, session deniedLogin succeeded, the operation did notShell, command or forwarding permission

Arrêtez-vous après quelques tentatives de mot de passe échouées. Les suppositions répétées produisent des verrouillages qui ressemblent ensuite à une seconde panne sans rapport et coûtent plus de temps que le ticket initial.

Retour arrière et le journal que vous gardez

Changez une chose à la fois et notez ce que vous avez changé avant de retester. Si un changement aggrave la tentative, revenez dessus immédiatement au lieu d’empiler une autre correction par-dessus. Répétez l’opération d’origine depuis le client et le contexte d’origine. Une connexion réussie depuis une autre machine, sur une autre famille d’adresses, n’est pas une reproduction et ne prouve pas la correction.

Assainissez ce que vous partagez. La sortie détaillée du client peut porter des noms internes, des libellés de compte, des chemins de clés et des identifiants de clés publiques, alors publiez la conclusion par étapes plutôt qu’une trace brute.

Articles similaires