Ar jūsų viešieji SSH raktai kelia jums sunkumų? Išbandykite vieną iš šių sprendimų.

SSH yra naudingas įrankis norint prisijungti prie nuotolinių kompiuterių, tačiau gali atsirasti klaida „Leidimas atmestas (viešasis raktas)“, susijusi su jūsų viešuoju raktu sistemoje „Linux“. Laimei, yra keletas paprastų pataisymų, kuriuos galite pabandyti pašalinti.

Kas yra viešasis raktas?

Kai sugeneruosite SSH raktų porą sistemoje „Linux“, jums bus suteiktas viešasis raktas ir privatus raktas. Privatus raktas liks su jumis kaip kruopščiai saugoma paslaptis, tačiau viešasis raktas bus perduotas nuotoliniams serveriams, kad galėtumėte prisijungti be slaptažodžio. Kai prisijungiate, jūsų vietinis SSH klientas suderins viešąjį raktą su privačiuoju raktu.

Šio metodo pranašumas yra tas, kad jums tereikia išduoti viešąjį raktą. Kol jūsų privatusis raktas bus privatus, tai turėtų jus apsaugoti, jei jūsų viešasis raktas būtų pažeistas. Viešasis raktas pats savaime bus nenaudingas.

OpenSSH, plačiausiai naudojamas SSH klientas ir serveris atvirojo kodo pasaulyje, reikalauja failo, kuriame yra bet koks viešuosius raktus nuotoliniame kompiuteryje (".ssh/authorized_keys" jūsų namų kataloge), kad turėtumėte tam tikrus leidimus. Tai neveiks, jei rašymo leidimai bus nustatyti kitiems vartotojams, o tai vadinama „galima rašyti visame pasaulyje“. Kadangi katalogo pavadinimas prasideda tašku (.), jis nebus rodomas jokiuose ls sąrašuose, nebent naudosite komandą

instagram viewer
ls -A.

Leidimai gali pasikeisti, jei failas buvo nukopijuotas iš kito kompiuterio arba jūs jį sukūrėte patys. Laimei, tai lengva ištaisyti.

Patikrinkite savo viešojo rakto leidimus

Failas authorised_keys yra tiesiog paprasto teksto failas, kuriame yra visi viešieji raktai iš klientų, kuriems norite prisijungti prie savo paskyros nuotoliniame kompiuteryje. Norėdami pamatyti jo leidimus, naudokite komandą ls su -l parinktimi:

ls -l ~/.ssh/authorized_keys

Bus rodomi savininko, grupės ir kitų naudotojų leidimo nustatymai. Atkreipkite dėmesį į paskutines šešias eilutės raides. Jei juose matote „w“, tai reiškia, kad grupė ar kiti gali jai rašyti, todėl tai tampa nesaugi.

Norėsite, kad šį failą galėtumėte įrašyti jūs, bet ne grupė ar kiti. Norėdami suteikti prieigą tinkamiems vartotojams, leidimus galite pakeisti naudodami chmod.

Yra du būdai: skaitmeninis ir simbolinis.

Skaičių būdas yra trumpesnis, bet jūs turite įsiminti aštuntainius leidimo numerius:

chmod 700 ~/.ssh/authorized_keys

Simbolinis metodas yra labiau mnemoninis:

chmod go-w ~/.ssh/authorized_keys

Saugiai nukopijuokite raktus naudodami ssh-agent

Galite rankiniu būdu nukopijuoti ir įklijuoti bet kokius viešuosius raktus iš savo įrenginio į ~/.ssh/.authorized_keys failą, tačiau naudojant ssh-agent programą sumažės bet kokių leidimų klaidų tikimybė.

Norėdami paleisti ssh-agent, naudokite šią komandą:

eval "$(ssh-agent-s)"

Norėdami prisijungti prie nuotolinio serverio naudodami ssh-agent, naudokite parinktį -A su ssh

ssh -A [email protected]

Patikrinkite nuotolinio serverio sshd nustatymus

Jei kuri nors iš šių pastangų nepavyksta, gali tekti atlikti tam tikrus sshd serverio konfigūracijos pakeitimus nuotoliniame kompiuteryje, jei turite root prieigą. Jei ne, greičiausiai turėsite susisiekti su sistemos administratoriumi, kad padėtų išspręsti visas SSH ryšio problemas. Tai yra paskutinė išeitis, nes tai gali padaryti jūsų sistemą mažiau saugią.

Sistemos sshd konfigūracijos failas yra /etc/ssh/sshd_config. Kadangi jis priklauso root, norėdami jį redaguoti, turėsite naudoti sudo. Pavyzdžiui, norėdami jį redaguoti naudodami Vim:

sudo vim /etc/ssh/sshd_config

Norėdami įgalinti sshd, kad galėtumėte prisijungti, net jei jūsų author_keys failas yra rašomas visame pasaulyje, šiame faile nustatykite parinktį „StrictModes“ į „no“.

Išsaugokite jį ir iš naujo paleiskite SSH serverį:

sudo systemctl restart sshd.service

Dabar galite ištaisyti SSH viešojo rakto leidimų klaidas

Galite susidurti su klaidomis dėl viešųjų SSH raktų nuotolinėse sistemose. Laimei, dažniausiai tereikia patikrinti ir nustatyti failo teises, kad niekas kitas nematytų jūsų rakto. Patikimesniems ryšiams taip pat galite naudoti ssh-agent. Kraštutiniu atveju galite padaryti SSH serverį ne tokį griežtą.