Bine ați venit la ghidul nostru final pentru configurarea cheilor SSH (Secure Shell). Acest tutorial vă va ghida prin noțiunile de bază pentru crearea cheilor SSH și, de asemenea, cum să gestionați mai multe chei și perechi de chei.

Creați o nouă pereche de chei SSH

Deschideți un terminal și rulați următoarea comandă:

ssh-keygen

Veți vedea următorul text:

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

Apăsați Enter pentru a salva tastele la valoarea implicită /home/username/.ssh director.

Apoi vi se va solicita să introduceți o parolă:

Enter passphrase (empty for no passphrase):

Este recomandat să introduceți o parolă aici pentru un strat suplimentar de securitate. Prin setarea unei parole, puteți preveni accesul neautorizat la serverele și conturile dvs. dacă cineva primește vreodată cheia SSH privată sau mașina dvs.

După introducerea și confirmarea parolei, veți vedea următoarele:

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 username@871e129f767b
The key's randomart image is:
+---[RSA 2048]----+
| .o=+....        |
|+.*o+o .         |
|+X.=o o          |
|@.=.oo .         |
|=O ...o S        |
|o.oo . .         |
|.E+ . . . .      |
|oo . ... +       |
|=.. .o. . .      |
+----[SHA256]-----+

Acum aveți o pereche de chei SSH publice și private pe care o puteți utiliza pentru a accesa servere la distanță și pentru a gestiona autentificarea pentru programe de linie de comandă precum Git.

Gestionați mai multe chei SSH

Deși se consideră o bună practică să aveți o singură pereche de chei public-privat pe dispozitiv, uneori trebuie să utilizați mai multe chei sau aveți nume de chei neortodoxe. De exemplu, este posibil să utilizați o pereche de chei SSH pentru a lucra la proiectele interne ale companiei dvs., dar s-ar putea să utilizați o altă cheie pentru accesarea serverelor unui client. În plus, este posibil să utilizați o pereche de chei diferită pentru a accesa propriul dvs. server privat.

Gestionarea cheilor SSH poate deveni greoaie de îndată ce trebuie să utilizați oa doua cheie. În mod tradițional, ați folosi ssh-add pentru a vă stoca cheile ssh-agent, introducând parola pentru fiecare cheie. Problema este că ar trebui să faceți acest lucru de fiecare dată când reporniți computerul, ceea ce poate deveni rapid obositor.

O soluție mai bună este automatizarea adăugării de chei, stocarea parolelor și specificarea cheii de utilizat atunci când accesați anumite servere.

SSH config

Introduceți SSH config, care este un fișier de configurare per utilizator pentru comunicarea SSH. Creați un fișier nou: ~/.ssh/config și deschideți-l pentru editare:

nano ~/.ssh/config

Gestionarea cheii SSH personalizate

Primul lucru pe care îl vom rezolva folosind acest lucru config fișierul este pentru a evita să adăugați chei SSH personalizate folosind ssh-add. Presupunând că se numește cheia privată SSH ~/.ssh/id_rsa, adăugați următoarele la config fişier:

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

Apoi, asigurați-vă că ~/.ssh/id_rsa nu este în ssh-agent deschizând un alt terminal și executând următoarea comandă:

ssh-add -D

Această comandă va elimina toate cheile din activul curent ssh-agent sesiune.

Acum, dacă încercați să închideți un depozit GitHub, config fișierul va utiliza cheia la ~/.ssh/ida_rsa.

Iată câteva alte exemple utile de configurare:

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

Acum puteți utiliza git clone git@bitbucket-corporate:company/project.git

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

Acum puteți utiliza git clone git@bitbucket-personal:username/other-pi-project.git

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

Acum puteți introduce SSH pe serverul dvs. folosind ssh myserver. Nu mai trebuie să introduceți un port și un nume de utilizator de fiecare dată când vă SSH pe serverul privat.

Gestionarea parolei

Ultima piesă a puzzle-ului este gestionarea parolelor. Poate deveni foarte obositor să introduci o parolă de fiecare dată când inițializezi o conexiune SSH. Pentru a rezolva acest lucru, putem folosi software-ul de gestionare a parolei care vine cu macOS și diverse distribuții Linux.

Pentru acest tutorial vom folosi programul MacOS Keychain Access. Începeți prin adăugarea cheii dvs. la Accesul la breloc prin trecere -K opțiune la ssh-add comanda:

ssh-add -K ~/.ssh/id_rsa_whatever

Acum puteți vedea cheia SSH în accesul la chei:

Acces la cheie

Dar dacă scoateți cheile din ssh-agent cu ssh-add -D sau reporniți computerul, vi se va solicita din nou parola când încercați să utilizați SSH. Se pare că mai este încă un cerc prin care să sară. Deschideți SSH-ul config fișier rulând nano ~/.ssh/config și adăugați următoarele:

Host *
  AddKeysToAgent yes
  UseKeychain yes

Cu asta, ori de câte ori alergi ssh va căuta chei în Keychain Access. Dacă găsește una, nu vi se va mai solicita o parolă. Cheile vor fi adăugate automat la ssh-agent de fiecare dată când reporniți aparatul.

Acum că știți elementele de bază pentru crearea de noi chei SSH și gestionarea mai multor chei, ieșiți și ssh după pofta inimii!