Secure Shell
Debuggen van SSH-problemen
Zoeken…
Privésleutel wordt niet geaccepteerd (Debug van OpenSSH-clients)
Standaard is de meeste informatie verborgen voor de gebruiker. U kunt -v schakelaars gebruiken om een uitgebreid logboek van de verbindingspoging te krijgen, die meestal het probleem zal lokaliseren door aan te tonen waarom het gedrag anders is dan u verwacht.
Laten we aannemen dat u verbinding maakt met de server example.com met behulp van ssh (of een andere OpenSSH-client zoals sftp of scp ) en dat uw privésleutel niet door de server wordt geaccepteerd en de server om het wachtwoord vraagt (of de verbinding weigert):
$ ssh example.com
[email protected]'s password:
Probeer de ssh met -vvv schakelaars, die alle foutopsporingsberichten wegschrijven. Het zal veel informatie zijn, maar na een tijdje is het vrij eenvoudig om te begrijpen dat:
$ ssh -vvv example.com
Het meest voorkomende probleem is dat de sleutel zich niet op de verwachte locatie bevindt. Je kunt verwachten dat vergelijkbare regels worden weergegeven en klagen over ontbrekende bestanden. Controleren of uw bestand echt is gelezen, is een goed begin:
debug1: identity file /home/username/.ssh/id_dsa type -1
debug1: key_load_public: No such file or directory
debug1: identity file /home/username/.ssh/id_dsa-cert type -1
We kunnen doorgaan naar het authenticatiegedeelte. De sleutel wordt mogelijk aangeboden, maar door de server geweigerd vanwege een probleem met de serverconfiguratie. Het logboek ziet er misschien als volgt uit:
debug3: preferred publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: username@localhost
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey,gssapi-keyex,gssapi-with-mic,password
IDENTIFICATIE VAN DE AFSTANDSBEDIENING IS VERANDERD!
De veel voorkomende fout bij het gebruik van ssh is om de fout te zien zoals
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:L5ri/Xdgpuals893ej1z5F1wlg1n2YNeBf/tsABX+QQ.
Please contact your system administrator.
Add correct host key in /Users/username/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/username/.ssh/known_hosts:12
RSA host key for *IP address* has changed and you have requested strict checking.
Host key verification failed.
Dit betekent dat u eerder verbinding hebt gemaakt met dezelfde server en dat deze is geïdentificeerd met behulp van verschillende hostsleutels. Als u weet dat u de serversleutels hebt gewijzigd, de server opnieuw hebt geïnstalleerd of de serverbeheerder een aantal wijzigingen heeft aangekondigd, is het meestal ok om de oude sleutel te verwijderen en de ssh de nieuwe te laten opslaan.
De oude sleutel kan transparant worden verwijderd met behulp van ssh-keygen :
ssh-keygen -R *IP address*
En de volgende verbinding zou u moeten vragen om de nieuwe vingerafdruk te verifiëren:
ssh192.168.0.128
The authenticity of host '192.168.0.128 (192.168.0.128)' can't be established.
ECDSA key fingerprint is SHA256:L5ri/Xdgpuals893ej1z5F1wlg1n2YNeBf/tsABX+QQ.
Are you sure you want to continue connecting (yes/no)?
Als u niets van het bovenstaande weet, kunt u het beste contact opnemen met uw serverbeheerder om te controleren of alles in orde is. Zo niet, dan zou de potentiële aanvaller zowel uw authenticatie-informatie als alle overgedragen gegevens kunnen ontvangen!
Verbinding geweigerd
De fout 'Verbinding geweigerd' treedt op als uw client een verbindingsverzoek naar een externe serverhost verzendt en de externe host antwoordt dat deze de aanvraag weigert. De fout "Verbinding geweigerd" betekent in wezen dat de computer geen verbindingen accepteert met het gevraagde IP-adres en de juiste poort.
"Verbinding geweigerd" kan worden veroorzaakt door een firewall die verbindingsverzoeken blokkeert. Een firewall die is geconfigureerd om verbindingen met een bepaald eindpunt te blokkeren, kan worden ingesteld om verbindingsverzoeken te laten vallen - in welk geval de client nooit een antwoord krijgt en uiteindelijk een time-out krijgt. Of de firewall kan reageren op verbindingsverzoeken met een weigering.
Afgezien van firewalls, heeft in het geval van SSH "verbinding geweigerd" een paar mogelijke oorzaken:
Mogelijk gebruikt u het verkeerde poortnummer om verbinding te maken. Het standaardpoortnummer voor SSH is 22, maar sommige mensen gebruiken de ssh-service op een andere poort om ongeautoriseerde toegangspogingen af te schrikken.
Mogelijk probeert u verbinding te maken met de verkeerde computer. Mogelijk hebt u de hostnaam of het IP-adres verkeerd getypt. Of de computer gebruikt mogelijk een dynamisch toegewezen adres dat is gewijzigd.
Het SSH-serverproces is mogelijk niet actief:
- Mogelijk is het nog niet gestart als het systeem bezig is met opstarten.
- Het is mogelijk uitgeschakeld; bijvoorbeeld wanneer het systeem zich in de modus voor één gebruiker bevindt.
- Mogelijk is deze verkeerd geconfigureerd, waardoor deze niet kan worden gestart.
- De computer heeft mogelijk geen SSH-server ingesteld. MS Windows-systemen bevatten meestal geen SSH-server. Op sommige Linux-systemen kan de SSH-server een optioneel onderdeel zijn. OS X bevat een SSH-server, maar deze is standaard uitgeschakeld.
Het SSH-serverproces luistert mogelijk niet naar verbindingen op de specifieke IP-interface waarmee u verbinding probeert te maken. De meeste computers hebben ten minste twee IP-interfaces, een "localhost" -interface en een of meer netwerkinterfaces. Aan elke actieve interface is een IP-adres gekoppeld. Een SSH-server is meestal geconfigureerd om verbindingen op elke IP-interface te accepteren. Maar het kan worden geconfigureerd om verbindingen alleen op bepaalde interfaces te accepteren. In dat geval weigert de computer verbindingen met een IP-adres waarnaar de SSH-server niet luistert, zelfs als het verbindingsverzoek de juiste poort heeft.
De server heeft mogelijk een achterstand van verbindingsaanvragen op dezelfde poort. Dit is zeldzaam en ongebruikelijk, maar als de host verbindingsverzoeken sneller ontvangt dan ze kunnen worden afgehandeld, zal de host uiteindelijk nieuwe verbindingsverzoeken weigeren.
Merk op dat, firewalls terzijde, "verbinding geweigerd" betekent dat je communiceert met de computer op afstand - het is gewoon niet uw verzoek om verbinding te accepteren.
Connectie time-out
De fout 'Time-out verbinding' treedt op wanneer het externe systeem niet reageert op de poging van de client om een TCP / IP-verbinding te openen. De meest voorkomende oorzaken zijn:
- Een firewall blokkeert de verbindingspoging op de poort die u gebruikt:
- De firewall kan zich aan de clientzijde bevinden, uitgaande verbindingen blokkeren, aan de serverzijde, inkomende verbindingen blokkeren of ergens anders op het pad.
- Het kernprobleem kan zijn dat u het verkeerde poortnummer gebruikt.
- De host waarmee u verbinding probeert te maken, kan offline zijn.
- Een deel van het netwerk tussen de client en de server kan down of verstoord zijn.
- Er kan een netwerkrouteringsprobleem zijn.
Het diagnosticeren van de oorzaak van time-outs van de verbinding is moeilijk.
ssh_exchange_identification: lezen: Verbinding opnieuw ingesteld door peer
Dit foutbericht kan worden geproduceerd door de OpenSSH ssh client. Het betekent dat de TCP-verbinding tussen de client en de server onmiddellijk nadat deze was geaccepteerd, abnormaal werd verbroken door de server. Veelvoorkomende redenen voor dit bericht zijn:
- Het SSH-serverproces functioneert niet goed - het is bijvoorbeeld gecrasht.
- Een firewall, router of ander netwerkapparaat tussen de client en de server verstoort de SSH-verbinding.
De zinnen in het foutbericht geven specifiek aan wat er is gebeurd:
ssh_exchange_identification: 1. Nadat een SSH-client verbinding heeft gemaakt met een SSH-server, is de eerste stap bij het starten van het SSH-protocol dat de server de softwareversie naar de client verzendt. Een fout met "ssh_exchange_identification" geeft aan dat de fout direct na het maken van de TCP-verbinding is opgetreden, terwijl de client wachtte op de softwareversie van de server.
Verbindingsreset: een verbindingsreset betekent dat de TCP-verbinding "abnormaal gesloten" was. U kunt dit krijgen als het softwareproces met een van de TCP-verbindingen vastloopt. Netwerkfirewalls kunnen worden geconfigureerd om verbindingsresets te gebruiken om TCP-verbindingen te blokkeren.
door peer betekent dat de TCP-verbinding is gesloten vanaf het "andere uiteinde" van de verbinding. In dit geval is het "andere uiteinde" de externe SSH-server.
Merk op dat deze fout geen enkele vorm van authenticatiefout aangeeft. De server heeft de TCP-verbinding onmiddellijk gesloten nadat deze was geaccepteerd. De client en server hebben nog helemaal geen gegevens uitgewisseld. De server heeft nog geen hostsleutel naar de client verzonden en de client heeft nog niet geprobeerd zich met de server te verifiëren.
ssh_exchange_identification: Verbinding verbroken door externe host
Dit foutbericht kan worden geproduceerd door de OpenSSH ssh-client. Dit betekent dat de TCP-verbinding tussen de client en de server onmiddellijk na acceptatie door de server werd verbroken. Dit bericht geeft meestal aan dat de SSH-server om de een of andere reden is geconfigureerd om geen verbindingen van de client te accepteren:
- De server kan worden geconfigureerd om verbindingen vanaf het IP-adres van de client te weigeren.
- De server kan worden geconfigureerd met een limiet op het aantal actieve SSH-verbindingen.
- De client heeft mogelijk verbinding gemaakt met iets dat geen SSH-server is.
De zinnen in het foutbericht geven specifiek aan wat er is gebeurd:
ssh_exchange_identification: 1. Nadat een SSH-client verbinding heeft gemaakt met een SSH-server, is de eerste stap bij het starten van het SSH-protocol dat de server de softwareversie naar de client verzendt. Een fout met "ssh_exchange_identification" geeft aan dat de fout direct na het maken van de TCP-verbinding is opgetreden, terwijl de client wachtte op de softwareversie van de server.
Verbinding gesloten: dit betekent dat de TCP-verbinding op een normale manier is gesloten. Het geeft aan dat de SSH-server opzettelijk de verbinding heeft verbroken. Dit in tegenstelling tot "Verbinding opnieuw instellen", wat erop zou kunnen duiden dat de SSH-server is gecrasht of niet goed werkt.
door externe host betekent dat de TCP-verbinding is gesloten vanaf het "andere uiteinde" van de verbinding. In dit geval is het "andere uiteinde" de externe SSH-server.
Merk op dat deze fout geen enkele vorm van authenticatiefout aangeeft. De server heeft de TCP-verbinding onmiddellijk gesloten nadat deze was geaccepteerd. De client en server hebben nog helemaal geen gegevens uitgewisseld. De server heeft nog geen hostsleutel naar de client verzonden en de client heeft nog niet geprobeerd zich met de server te verifiëren.