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/.ssh
direktorij.
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-add
za 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/config
i otvorite je za uređivanje:
nano ~/.ssh/config
Upravljanje prilagođenim imenovanim SSH ključem
Prvo što ćemo riješiti pomoću ove config
datoteke 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 config
datoteku:
Host github.com HostName github.com User git IdentityFile ~/.ssh/id_rsa IdentitiesOnly yes
Zatim provjerite da ~/.ssh/id_rsa
nije u ssh-agent
otvaranjem drugog terminala i trčanje slijedeće naredba:
ssh-add -D
Ova će naredba ukloniti sve ključeve iz trenutno aktivne ssh-agent
sesije.
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 -K
opcije ssh-add
naredbi:
ssh-add -K ~/.ssh/id_rsa_whatever
Sada možete vidjeti svoj SSH ključ u Access Keychain Access:

Ali ako uklonite ključeve ssh-agent
s ssh-add -D
rač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 config
datoteku pokretanjem nano ~/.ssh/config
i 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-agent
svakom ponovnom pokretanju stroja.
Sad kad znate osnove stvaranja novih SSH ključeva i upravljanja s više ključeva, izađite ssh
do mile volje!