Galutinis SSH vadovas - SSH raktų nustatymas

Sveiki atvykę į mūsų pagrindinį SSH („Secure Shell“) raktų nustatymo vadovą. Šioje pamokoje bus išsamiai aprašyta, kaip sukurti SSH raktus, taip pat kaip valdyti kelis raktus ir raktų poras.

Sukurkite naują SSH raktų porą

Atidarykite terminalą ir vykdykite šią komandą:

ssh-keygen

Pamatysite šį tekstą:

Generating public/private rsa key pair. Enter file in which to save the key (/home/username/.ssh/id_rsa):

Paspauskite „Enter“, kad išsaugotumėte raktus į numatytąjį /home/username/.sshkatalogą.

Tada būsite paraginti įvesti slaptažodį:

Enter passphrase (empty for no passphrase):

Rekomenduojama čia įvesti slaptažodį, kad gautumėte papildomą saugumo lygį. Nustatę slaptažodį, galite užkirsti kelią neteisėtai prieigai prie savo serverių ir paskyrų, jei kas nors kada nors sulaikys jūsų privatų SSH raktą ar jūsų kompiuterį.

Įvedę ir patvirtinę slaptažodį pamatysite:

Your identification has been saved in /home/username/.ssh/id_rsa. Your public key has been saved in /home/username/.ssh/id_rsa.pub. The key fingerprint is: SHA256:/qRoWhRcIBTw0D4KpTUyK6YepyL6RQ2CQrtWsaicCb4 [email protected] The key's randomart image is: +---[RSA 2048]----+ | .o=+.... | |+.*o+o . | |+X.=o o | |@.=.oo . | |=O ...o S | |o.oo . . | |.E+ . . . . | |oo . ... + | |=.. .o. . . | +----[SHA256]-----+

Dabar turite viešų ir privačių SSH raktų poras, kurias galite naudoti norėdami pasiekti nuotolinius serverius ir tvarkyti komandų eilutės programų, tokių kaip „Git“, autentifikavimą.

Tvarkykite kelis SSH raktus

Nors laikoma gera praktika turėti tik vieną viešojo ir privataus raktų porą kiekviename įrenginyje, kartais reikia naudoti kelis raktus arba turite netradicinių raktų pavadinimus. Pvz., Galite naudoti vieną SSH raktų porą dirbdami su savo įmonės vidiniais projektais, bet galbūt naudojate kitą raktą, kad pasiektumėte kliento serverius. Be to, galite naudoti kitą raktų porą, kad galėtumėte pasiekti savo asmeninį serverį.

SSH raktų valdymas gali tapti sudėtingas, kai tik reikės naudoti antrąjį raktą. Tradiciškai jūs naudosite ssh-addraktus saugoti ssh-agent, įvesdami kiekvieno rakto slaptažodį. Problema yra ta, kad jums reikės tai padaryti kiekvieną kartą iš naujo paleidus kompiuterį, kuris gali greitai tapti nuobodus.

Geresnis sprendimas yra automatizuoti raktų pridėjimą, slaptažodžių saugojimą ir nurodyti, kurį raktą naudoti norint pasiekti tam tikrus serverius.

SSH config

Įveskite SSH config, kuris yra vartotojo konfigūracijos failas, skirtas SSH ryšiui. Sukurkite naują failą ~/.ssh/configir atidarykite jį redaguoti:

nano ~/.ssh/config

Tinkinto pavadinimo SSH rakto valdymas

Pirmas dalykas, kurį mes išspręsime naudodami šį configfailą, yra vengti naudoti specialiai pavadintus SSH raktus ssh-add. Darant prielaidą, kad jūsų privatus SSH raktas yra pavadintas ~/.ssh/id_rsa, prie configfailo pridėkite :

Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes

Tada įsitikinkite, kad ~/.ssh/id_rsato nėra, ssh-agentatidarydami kitą terminalą ir vykdydami šią komandą:

ssh-add -D

Ši komanda pašalins visus raktus iš šiuo metu aktyvios ssh-agentsesijos.

Dabar, jei bandysite uždaryti „GitHub“ saugyklą, configfailas naudos raktą ~/.ssh/ida_rsa.

Štai keletas kitų naudingų konfigūracijos pavyzdžių:

Host bitbucket-corporate HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_corp IdentitiesOnly yes

Dabar galite naudoti git clone [email protected]:company/project.git

Host bitbucket-personal HostName bitbucket.org User git IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes

Dabar galite naudoti git clone [email protected]:username/other-pi-project.git

Host myserver HostName ssh.username.com Port 1111 IdentityFile ~/.ssh/id_rsa_personal IdentitiesOnly yes User username IdentitiesOnly yes

Dabar galite prisijungti SSH į savo serverį naudodami ssh myserver. Jums nebereikia įvesti prievado ir vartotojo vardo kiekvieną kartą, kai SSH naudojate savo privačiame serveryje.

Slaptažodžių valdymas

Paskutinis galvosūkis yra slaptažodžių tvarkymas. Kiekvieną kartą inicijuojant SSH ryšį gali būti labai nuobodu įvesti slaptažodį. Norėdami tai apeiti, galime naudoti slaptažodžių valdymo programinę įrangą, pateikiamą kartu su „MacOS“ ir įvairiais „Linux“ paskirstymais.

Šioje pamokoje naudosime „MacOS“ programą „Keychain Access“. Pradėkite pridėdami raktą prie „Keychain Access“, perduodami komandai -Kparinktį ssh-add:

ssh-add -K ~/.ssh/id_rsa_whatever

Dabar SSH raktą galite pamatyti „Keychain Access“:

Prieiga prie raktų pakabuko

Bet jei jūs pašalinti raktus nuo ssh-agentsu ssh-add -Darba iš naujo paleiskite kompiuterį, jums bus pasiūlyta slaptažodžio vėl, kai jūs bandote naudoti SSH. Pasirodo, kad reikia peršokti dar vieną ratą. Atidarykite savo SSH configfailą paleisdami nano ~/.ssh/configir pridėkite:

Host * AddKeysToAgent yes UseKeychain yes

Taigi, kai paleisite, sshjis ieškos raktų „Keychain Access“. Jei rado, jums nebereikės prašyti įvesti slaptažodžio. Raktai taip pat bus automatiškai pridedami ssh-agentkiekvieną kartą paleidus kompiuterį iš naujo.

Dabar, kai žinote naujų SSH raktų kūrimo ir kelių raktų valdymo pagrindus, eikite sshį savo širdį!