Vam javni ključi SSH povzročajo težave? Poskusite eno od teh rešitev.

SSH je uporabno orodje za povezovanje z oddaljenimi napravami, vendar lahko naletite na napako »Dovoljenje zavrnjeno (publickey)«, ki vključuje vaš javni ključ v Linuxu. Na srečo obstaja nekaj preprostih popravkov, s katerimi lahko poskusite odpraviti težavo.

Kaj je javni ključ?

Ko ustvarite par ključev za SSH v Linuxu, boste prejeli javni in zasebni ključ. Zasebni ključ bo ostal pri vas kot skrbno varovana skrivnost, javni ključ pa bo posredovan oddaljenim strežnikom, da se boste lahko prijavili brez gesla. Vaš lokalni odjemalec SSH bo povezal javni ključ z zasebnim ključem, ko se povežete.

Prednost te metode je, da morate dati samo javni ključ. Dokler ohranite svoj zasebni ključ zaseben, bi morali biti varni, če bi bil vaš javni ključ ogrožen. Javni ključ bo sam po sebi neuporaben.

OpenSSH, najbolj razširjen odjemalec in strežnik SSH v odprtokodnem svetu, zahteva datoteko, ki vsebuje javne ključe na oddaljenem računalniku (".ssh/authorized_keys" v vašem domačem imeniku), da imate določena dovoljenja. Ne bo delovalo, če so dovoljenja za pisanje nastavljena za druge uporabnike, kar je znano kot "svetovno zapisljivo". Ker se ime imenika začne s piko (.), ne bo prikazano v nobenem seznamu ls, razen če uporabite ukaz

instagram viewer
je -A.

Dovoljenja se lahko spremenijo, če je bila datoteka prekopirana iz drugega računalnika ali ste jo ustvarili sami. Na srečo je to enostavno popraviti.

Preverite svoja dovoljenja za javni ključ

Datoteka authorized_keys je preprosto datoteka z navadnim besedilom, ki vsebuje vse javne ključe strank, za katere želite, da se lahko prijavijo v svoj račun na oddaljenem računalniku. Če želite videti njegova dovoljenja, uporabite ukaz ls z možnostjo -l:

ls -l ~/.ssh/authorized_keys

To bo prikazalo nastavitve dovoljenj za lastnika, skupino in druge uporabnike. Bodite pozorni na zadnjih šest črk v nizu. Če v njih vidite "w", to pomeni, da ji lahko skupina ali drugi pišejo, zaradi česar je nevarna.

Želeli boste, da lahko v to datoteko pišete vi, ne pa skupina ali drugi. Če želite omogočiti dostop pravim uporabnikom, dovoljenja lahko spremenite s chmod.

Obstajata dva načina: numerično in simbolno.

Številčna pot je krajša, vendar si morate zapomniti osmiške številke dovoljenj:

chmod 700 ~/.ssh/authorized_keys

Simbolična metoda je bolj mnemonična:

chmod go-w ~/.ssh/authorized_keys

Varno kopirajte ključe s ssh-agentom

Poljubne javne ključe iz svoje naprave lahko ročno kopirate in prilepite v ~/.ssh/.authorized_keys datoteko, vendar bo uporaba programa ssh-agent zmanjšala možnosti morebitnih napak pri dovoljenjih.

Za zagon ssh-agenta uporabite ta ukaz:

eval "$(ssh-agent-s)"

Za prijavo v oddaljeni strežnik s ssh-agentom uporabite možnost -A s ssh

ssh -A [email protected]

Preverite nastavitve sshd oddaljenega strežnika

Če kateri koli od teh poskusov ne uspe, boste morda morali nekaj spremeniti konfiguracijo strežnika sshd na oddaljenem računalniku, če imate korenski dostop. Če ne, se boste verjetno morali obrniti na skrbnika sistema, da vam bo pomagal rešiti morebitne težave s povezavo SSH. To je zadnja možnost, saj lahko vaš sistem postane manj varen.

Sistemska konfiguracijska datoteka za sshd je /etc/ssh/sshd_config. Ker je v lasti root-ja, boste morali za urejanje uporabiti sudo. Na primer, če ga želite urediti z Vimom:

sudo vim /etc/ssh/sshd_config

Če želite omogočiti sshd, da se lahko prijavite, tudi če je vaša datoteka authorized_keys dovoljena za svetovno pisanje, nastavite možnost "StrictModes" na "ne" v tej datoteki.

Shranite in znova zaženite strežnik SSH:

sudo systemctl restart sshd.service

Zdaj lahko popravite napake dovoljenj javnega ključa SSH

V oddaljenih sistemih lahko naletite na napake v zvezi z javnimi ključi SSH. Na srečo je večino časa vse, kar morate storiti, preveriti in nastaviti dovoljenja za datoteke, tako da nihče drug ne more videti vašega ključa. Za bolj zanesljive povezave lahko uporabite tudi ssh-agent. V skrajnem primeru lahko strežnik SSH naredite manj strog.