Vrhunski vodič za SSH - postavljanje SSH ključeva

Dobrodošli u naš krajnji vodič za postavljanje SSH (Secure Shell) ključeva. Ovaj će vas vodič voditi kroz osnove stvaranja SSH ključeva, kao i kako upravljati s više ključeva i parova ključeva.

Stvorite novi par SSH ključeva

Otvorite terminal i pokrenite sljedeću naredbu:

ssh-keygen

Vidjet ćete sljedeći tekst:

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

Pritisnite enter za spremanje ključeva u zadani /home/username/.sshdirektorij.

Tada ćete zatražiti da unesete lozinku:

Enter passphrase (empty for no passphrase):

Preporučuje se da ovdje unesete lozinku za dodatni nivo sigurnosti. Postavljanjem lozinke možete spriječiti neovlašteni pristup svojim poslužiteljima i računima ako netko ikada dobije u ruke vaš privatni SSH ključ ili vaš stroj.

Nakon unosa i potvrde lozinke vidjet ćete sljedeće:

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]-----+

Sada imate javni i privatni par SSH ključeva koji možete koristiti za pristup udaljenim poslužiteljima i za obradu provjere autentičnosti za programe naredbenog retka poput Gita.

Upravljanje više SSH ključeva

Iako se smatra dobrom praksom imati samo jedan par javno-privatnih ključeva po uređaju, ponekad trebate koristiti više ključeva ili imate neobična imena ključeva. Na primjer, možda koristite jedan par SSH ključeva za rad na internim projektima vaše tvrtke, ali možda koristite drugi ključ za pristup klijentovim poslužiteljima. Povrh toga, možda koristite drugi par ključeva za pristup vlastitom privatnom poslužitelju.

Upravljanje SSH ključevima može postati glomazno čim trebate upotrijebiti drugi ključ. Tradicionalno biste upotrebljavali ssh-addza pohranu ključeva ssh-agent, upisujući lozinku za svaki ključ. Problem je u tome što biste to trebali učiniti svaki put kad ponovno pokrenete računalo, što brzo može postati zamorno.

Bolje je rješenje automatizirati dodavanje ključeva, spremati lozinke i odrediti koji će ključ koristiti prilikom pristupa određenim poslužiteljima.

SSH config

Unesite SSH config, koja je konfiguracijska datoteka po korisniku za SSH komunikaciju. Stvorite novu datoteku: ~/.ssh/configi otvorite je za uređivanje:

nano ~/.ssh/config

Upravljanje prilagođenim imenovanim SSH ključem

Prvo što ćemo riješiti pomoću ove configdatoteke je izbjegavanje dodavanja SSH ključeva s prilagođenim imenom ssh-add. Pod pretpostavkom da je vaš privatni SSH ključ imenovan ~/.ssh/id_rsa, dodajte sljedeće u configdatoteku:

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

Zatim provjerite da ~/.ssh/id_rsanije u ssh-agentotvaranjem drugog terminala i trčanje slijedeće naredba:

ssh-add -D

Ova će naredba ukloniti sve ključeve iz trenutno aktivne ssh-agentsesije.

Ako pokušate zatvoriti spremište GitHub, vaša configće datoteka koristiti ključ na ~/.ssh/ida_rsa.

Evo nekoliko korisnih primjera konfiguracije:

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

Sada možete koristiti git clone [email protected]:company/project.git

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

Sada možete koristiti 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

Sada možete SSH na svoj poslužitelj pomoću ssh myserver. Više ne morate unositi port i korisničko ime svaki put kada SSH otvorite na svoj privatni poslužitelj.

Upravljanje lozinkom

Posljednji dio slagalice je upravljanje lozinkama. Unošenje lozinke može biti vrlo zamorno svaki put kad inicijalizirate SSH vezu. Da bismo to zaobišli, možemo koristiti softver za upravljanje lozinkom koji dolazi s macOS-om i raznim Linux distribucijama.

Za ovaj ćemo vodič koristiti macOS-ov program Keychain Access. Započnite dodavanjem ključa u Keychain Access prosljeđivanjem -Kopcije ssh-addnaredbi:

ssh-add -K ~/.ssh/id_rsa_whatever

Sada možete vidjeti svoj SSH ključ u Access Keychain Access:

Pristup privjesku

Ali ako uklonite ključeve ssh-agents ssh-add -Dračunala ili ga ponovo pokrenete, ponovno ćete zatražiti lozinku kada pokušate koristiti SSH. Ispostavilo se da postoji još jedan obruč za preskočiti. Otvorite SSH configdatoteku pokretanjem nano ~/.ssh/configi dodajte sljedeće:

Host * AddKeysToAgent yes UseKeychain yes

Uz to, kad god pokrenete ssh, tražit će ključeve u Keychain Accessu. Ako je pronađe, više nećete tražiti lozinku. Tipke će se također automatski dodavati pri ssh-agentsvakom ponovnom pokretanju stroja.

Sad kad znate osnove stvaranja novih SSH ključeva i upravljanja s više ključeva, izađite sshdo mile volje!