SSH-sleutels zijn een geweldige methode om SSH-sessies te verifiëren zonder dat u bij elke aanmelding een wachtwoord nodig hebt. Zoals alle technologieën zijn SSH-sleutels echter niet perfect, en u kunt fouten tegenkomen bij het gebruik ervan. Een van de meest voorkomende fouten bij het werken met SSH-sleutels is de fout 'permissie geweigerd' (publickey).
Dit artikel bespreekt de verschillende redenen voor deze fout en toont u de snelle stappen die u kunt nemen om de fout te herstellen.
Fout 1: Geautoriseerde sleutels en directorymachtigingen
Een van de oorzaken van deze fout kunnen de machtigingen en eigendom zijn die zijn geconfigureerd voor de .ssh-map en het bestand Authorized_keys.
Om dit probleem op te lossen, stelt u de .ssh-mapmachtigingen in op 700 en de machtigingen_sleutels op 6oo.
sudo chmod 700~/.sshsudo chmod 600geautoriseerde_sleutels
Fout 2: SSH onjuiste configuraties
Een andere veelvoorkomende oorzaak van de publickey-fout is een onjuiste configuratie in het sshd_config-bestand. Om dit probleem op te lossen, bewerkt u het bestand /etc/ssh/sshd_config en wijzigt u de volgende vermeldingen.
#PermitRootLogin verbieden-wachtwoord#WachtwoordAuthenticatie ja
De bovenstaande vermeldingen moeten zijn zoals hieronder weergegeven:
PermitRootLoginJaWachtwoordAuthenticatieJa
Sla de configuratie op en start de service opnieuw:
sudosystemctl herstart sshd.serviceFout 3: Ontbrekende sleutels
Een andere mogelijke oorzaak van de fout 'Publickey-toestemming geweigerd' kunnen ontbrekende sleutels van uw lokale computer zijn. Als u uw sleutels hebt toegevoegd aan het bestand Authorized_keys van de server, maar de bijbehorende privésleutels mist, kan dit een fout veroorzaken.
Om dit probleem op te lossen, bewerkt u het ssh-configuratiebestand, schakelt u authenticatie met openbare sleutels uit en schakelt u inloggen met een wachtwoord als volgt in:
PubkeyAuthenticatieJa#WachtwoordAuthenticatie ja
Wijzig naar de volgende vermeldingen:
#PubkeyAuthenticatie jaWachtwoordAuthenticatieJa
Nadat u de configuratie hebt bewerkt, slaat u het bestand op en start u de SSH-service opnieuw:
sudosystemctl herstart sshd.serviceAls u zeker weet dat uw sleutels zijn gecompromitteerd, kunt u ze verwijderen uit Authorized_keys of een specifieke sleutel toevoegen aan de ingetrokken lijst in SSH.
Conclusie
Deze korte handleiding heeft u laten zien hoe u verschillende problemen kunt oplossen die de permissie geweigerd (publickey)-fout in SSH kunnen veroorzaken. Als dit probleem zich blijft voordoen, overweeg dan andere methoden voor probleemoplossing.