Nogle gange, når du forsøger at oprette forbindelse via SSH, kan du støde på fejlen 'Tilladelse nægtet (offentlig nøgle)'. Denne fejl kan opstå, hvis du ændrede tilladelsesindstillingerne på din SSH-server, såsom oprettelse af nye brugerkonti eller installation af nye pakker. Så det forhindrer dig i at oprette forbindelse til din SSH-server.
I denne vejledning lærer vi, hvordan du retter fejlen SSH Permission Denied (offentlig nøgle). Derudover vil vi også undersøge dens årsager og mulige løsninger til at løse denne almindelige SSH-godkendelsesfejl.
Du kan også lære hvordan man genererer en SSH-nøgle på Ubuntu ved hjælp af denne vejledning.
Hvorfor opstår SSH-fejlen 'Permission Denied (Public Key)'?
Denne fejl kan opstå på grund af forskellige årsager, såsom et forkert brugernavn eller vært, manglende offentlig nøgle på serveren, ugyldige tilladelser til SSH-nøgler og -mapper og SSH-tjenestekonfiguration. De to hovedårsager til denne fejl er dog angivet i det følgende:
- Denne fejl kan opstå på grund af en forkert konfiguration i filen '/etc/ssh/sshd_config', der indeholder standard SSH-konfigurationer.
- Fejlen kan også opstå på grund af utilstrækkelige tilladelser på filen '~/.ssh/authorized_key', der er placeret på fjernsystemet. Denne fil indeholder de offentlige nøgler til klientsystemer, der har tilladelse til at etablere SSH-forbindelser med serveren.
Sådan rettes fejlen 'Tilladelse nægtet (offentlig nøgle)'.
Du kan løse fejlen 'tilladelse nægtet (offentlig nøgle)' ved at bruge de to forskellige metoder:
Løsning 1: Kontroller og aktiver adgangskodegodkendelse
En af hovedårsagerne til denne fejl er den forkerte konfiguration af filen '/etc/ssh/sshd_config'. Deaktivering af adgangskodegodkendelsesfunktionen på dit system kan forårsage denne fejl, når nogen kun bruger den SSH-nøglebaserede godkendelse, og den private nøgle er muligvis ikke til stede af en eller anden grund. Så hvis du vil have adgang til SSH-serveren ved hjælp af adgangskodegodkendelse, kan du rette fejlen 'tilladelse nægtet' ved at aktivere adgangskodegodkendelsesfunktionen i din SSH-konfigurationsfil.
For at gøre dette skal du åbne terminalen ved hjælp af 'Ctrl+Alt+t' tastaturgenvejen og udføre følgende trin på serversiden:
Trin 1: Åbn '/etc/ssh/sshd_config' konfigurationsfilen i en teksteditor. Her bruger vi standard nano tekst editor.
$ sudo nano / etc / ssh / sshd_config
Trin 2 : Find linjen 'PasswordAuthentication', og aktiver den til 'yes'. Hvis denne linje er kommenteret, skal du fjerne '#'-symbolet i starten for at fjerne kommentarer til denne linje.
Gem de tidligere ændringer ved hjælp af 'Ctrl+O' og forlad konfigurationsfilen via 'Ctrl+x'.
Trin 3 : Genindlæs eller genstart SSH-tjenesten igen på dit system ved hjælp af følgende nævnte kommando for at anvende ændringerne på en fil.
$ sudo systemctl genstart sshd
Nu, hvis du prøver at oprette forbindelse til din SSH-klient igen, bør du være i stand til at få adgang til den eksterne værtsmaskine.
$ ssh vores tålmodighed @ 10.0.2.15
Løsning 2: Skift tilladelserne på SSH Authorized_Keys
Det anbefales ikke at bruge den SSH-adgangskodebaserede godkendelsesmetode på grund af sikkerhedsproblemer. Derfor er denne metode at foretrække, da den retter denne fejl ved hjælp af den offentlige grundlæggende godkendelsestilgang. I de fleste tilfælde kommer fejlen ved at konfigurere det forkerte ejerskab og tilladelser på en '~/.ssh/authorized_keys' fil placeret på fjernserveren. For at rette fejlen ved hjælp af denne metode skal du følge de givne trin:
Trin 1 : Åbn filen '/etc/SSH/sshd_config' i en teksteditor.
$ sudo nano / etc / ssh / sshd_config
Rediger nu følgende muligheder:
PermitRootLogin-nrPubkey Authentication Ja
Hvis du vil bruge root-login, skal du indstille 'permitrootlogin ja'.
Trin 2 : Kommenter GSSAPI-indstillingerne ved at tilføje '#'-symbolet i starten af disse linjer.
#GSSAPIAutentificering ja#GSSAPICleanupCredentials no
Indstil også 'UsePAM ja' i konfigurationsfilen.
Trin 3 : Gem den tidligere konfiguration og genstart SSH-tjenesterne ved hjælp af denne kommando:
$ sudo systemctl genstart sshdTjek nu tilladelserne på din hjemmemappe:
$ ls -ld
Hvis du ikke har læse-skrive-tilladelserne (drwx——) i denne mappe, skal du indstille tilladelserne ved hjælp af 'chmod'-kommandoen:
$ sudo chmod / hjem / vores tålmodighed
Skift tilladelsen til mappen '.ssh' ved hjælp af følgende kommando:
$ chmod 0700 / hjem / dit hjem / .sshMappen '.ssh' indeholder filen 'authorized_keys'. Tjek tilladelserne på denne fil.
$ ls -ld .ssh / autoriserede_nøgler
Filejeren skal have læse-skrive-tilladelser. For at ændre filtilladelserne skal du bruge følgende kommando:
$ chmod 0600 / hjem / [ brugernavn ] / .ssh / autoriserede_nøgler
Prøv nu at oprette forbindelse til SSH-fjernværten. Vi håber, at du ikke vil modtage nogen fejl på tidspunktet for tilslutningen.
Konklusion
I denne fejlfindingsvejledning undersøgte vi, hvordan man kan løse fejlen 'Tilladelse nægtet (offentlig nøgle)'. Vi diskuterede de potentielle årsager til denne fejl og anbefalede to forskellige løsninger til at løse denne fejl. Vi håber, at de tidligere instruktioner vil hjælpe dig med at rette denne fejl på dit Linux-system. Hvis du ønsker at få mere viden, kan du besøge den dokumentation her . Tak!