SSH-verbindingen debuggen

How Debug Ssh Connections



In deze zelfstudie worden enkele snelle methoden en technieken besproken die u kunt gebruiken om verschillende SSH-verbindingen te diagnosticeren, waaronder wanneer u geen verbinding kunt maken met SSH, verificatiefouten en dergelijke.

OPMERKING: Voordat u aan de slag gaat, moet u ervoor zorgen dat het apparaat waarmee u verbinding wilt maken online is en dat de fout niet het gevolg is van het feit dat het apparaat niet beschikbaar is.







Probleem 1: SSH-service werkt niet

Een veelvoorkomende oorzaak van SSH-verbindingsfouten is dat de service niet draait op de externe host. Dit kan het gevolg zijn van het per ongeluk afsluiten van de service of het niet starten van de service nadat het systeem opnieuw is opgestart.



Om te controleren of de SSH-service actief is, gebruikt u de systeembeheerder met de opdracht:



sudosystemctl-status sshd

De bovenstaande opdracht moet rapporteren of de service actief is of niet, zoals weergegeven in de onderstaande schermafbeeldingen.







Oplossing

Om SSH-problemen op te lossen die worden veroorzaakt doordat de service niet actief is, gebruikt u het systeem om de service te starten. Als de service met fouten reageert, controleer dan de logboeken en los de problemen op die in het logboek worden gemeld.

Gebruik de onderstaande opdracht om de servicelogboeken te controleren.

greep 'sshd' /waar/log/auth.log

Gebruik de onderstaande opdracht om de SSH-service te starten of te stoppen met systemd.

sudosystemctl start sshd

Probleem 2: SSH op niet-standaard poort

Het tweede veelvoorkomende probleem bij het debuggen van SSH-verbindingen is het gebruik van een niet-standaard poort. Als SSH wordt uitgevoerd op een andere poort dan de standaardpoort 22, maakt u geen verbinding met de externe host, tenzij u expliciet de poort opgeeft waarop SSH wordt uitgevoerd.

Om de poort te bekijken waarop SSH draait, gebruikt u een tool zoals netstat zoals hieronder:

[honderden@centos8 ~]$sudo netstat -ptln | greep ssh
tcp0 00.0.0.0:560.0.0.0:*LUISTEREN1131/sshd
tcp60 0:::56:::*LUISTEREN1131/sshd

De bovenstaande uitvoer laat zien op welke poort de SSH-service draait. In dit geval is dat poort 56.

Oplossing

Om dit probleem op te lossen, kunt u de informatie van netstat gebruiken om de poort expliciet in uw ssh-opdracht te specificeren als:

sshgebruikersnaam@ik p -P 56

Probleem 3: Een andere service die dezelfde poort gebruikt

Een andere oorzaak van SSH-verbindingsfouten is als een andere service of ander proces dezelfde poort gebruikt als de SSH-service. Als SSH bijvoorbeeld expliciet is gespecificeerd om op poort 80 te draaien (vreselijk idee), kan een service als Apache dezelfde poort gebruiken.

Om te zien of een ander proces dezelfde poort gebruikt als SSH, controleer je de logs met het commando:

sudojournaal-tsshd

Deze opdracht zou een fout moeten retourneren zoals hieronder wordt weergegeven, waarmee wordt aangegeven of een ander proces de SSH-gebonden poort gebruikt.

sshd[110611]: error: Binden aan poort80op 0.0.0.0 mislukt: adres alingebruik maken van

Het is goed om ervoor te zorgen dat de poortbindingsfout wordt veroorzaakt door een andere service, niet door beveiligingsmaatregelen zoals SELinux.

Oplossing

Er zijn verschillende manieren waarop u dit probleem kunt oplossen. Waaronder:

De eerste is om de SSH-service aan een andere poort te binden. U kunt dit doen door het SSH-configuratiebestand te bewerken. Wijzig bijvoorbeeld de poortinvoer in poort 3009 zoals weergegeven in de opdrachten:

sudo nano /enzovoort/ssh/sshd_config
Haven3009

Een andere methode die u kunt gebruiken om dit probleem op te lossen, is door de service te stoppen via de SSH-poort. Stop bijvoorbeeld de apache-service met poort 80 als:

sudosystemctl stop httpd
sudosystemctl httpd uitschakelen

Probleem 4: Firewall

Als je alle bovenstaande methoden hebt geprobeerd en nog steeds geen SSH-verbinding hebt, kun je doorgaan naar de volgende mogelijke oorzaak van het probleem: firewallbeperkingen. Afhankelijk van de Firewall-methode die u gebruikt (UFW of Iptables), moet u ervoor zorgen dat de firewall SSH-verbindingen toestaat.

Oplossing

Firewallregels zijn breed en kunnen variëren afhankelijk van de systeemconfiguratie. Ik kan dus niet elk aspect behandelen. Het volgende is echter een eenvoudige oplossing om ervoor te zorgen dat de SSH-service is toegestaan ​​op UFW Firewall.

sudoufw toestaan<ssh_port> /tcp

Je kunt ook alle UFW-regels resetten en opnieuw beginnen. Dat stelt u in staat om problemen met de firewall-verbindingen vanaf het begin op te lossen.

sudoufw reset

Probleem 5: Uitgeschakelde wachtwoordaanmeldingen

Soms kunt u SSH zo configureren dat het geen wachtwoordaanmeldingen accepteert en alleen authenticatie met openbare sleutels gebruikt. Dat kan een probleem veroorzaken als de openbare sleutel niet beschikbaar is op de server of als uw privésleutelpaar ontbreekt.

Om te controleren of wachtwoordaanmeldingen zijn toegestaan, gebruikt u de ssh-configuratie als:

[honderden@centos8]$sudo greepWachtwoordAuthenticatie/enzovoort/ssh/sshd_config
#WachtwoordAuthenticatie ja
WachtwoordAuthenticatieJa
# Wachtwoordverificatie. Afhankelijk van uw PAM-configuratie,
# PAM-authenticatie, schakel dit dan in, maar stel PasswordAuthentication in

De bovenstaande uitvoer laat zien dat inloggen met een wachtwoord is toegestaan.

Oplossing

Om het bovenstaande probleem op te lossen, kunt u twee methoden gebruiken:

Als u de waarde op no hebt ingesteld, wijzigt u eerst de waarde voor PasswordAuthentication in yes en start u de ssh-service opnieuw.

De andere methode is om een ​​ssh-sleutelwaardepaar te maken en dit te gebruiken om in te loggen op de server. Gebruik de volgende handleiding om te leren hoe u een ssh-sleutel-waardepaar maakt.

https://linuxhint.com/find-ssh-public-key/

https://linuxhint.com/use-ssh-copy-id-command/

Conclusie

In deze beknopte handleiding hebben we de belangrijkste oorzaken van SSH-verbindingsfouten besproken en hoe u deze kunt oplossen. Hoewel deze handleiding veelvoorkomende problemen behandelt, kunt u op basis van de configuratie en machtigingen fouten tegenkomen die specifiek zijn voor uw systeem.