Cum pot adăuga permanent cheia mea privată SSH la Keychain, astfel încât să fie disponibilă automat în ssh?

Se pare că ssh-add -K ~/.ssh/id_rsa vă va încărca cheia, dar vă va cere parola de fiecare dată când reporniți.

Caut o soluție care să nu mă oblige să reintroduc parola cheii între conectări.

Comentarii

  • Poate mai spui puțin despre momentul în care apare parola pentru tine? Întreb pentru că am o cheie ssh pentru un server la distanță, ceea ce vă asigur că nu este la fel ca parola mea de conectare la Mac sau orice altceva și nu am fost ' parola pentru cheia ssh timp de ani . Pot deschide un terminal, tastați " ssh < server > " și am ' m acolo. Cred că am setat mai întâi această cheie în OSX 10.5. id_dsa, dar nu ' nu cred că ar trebui să conteze.
  • Cheia id_rsa are o parolă.
  • Am, de asemenea, problema pe care am rezolvat-o cu atât de mult timp în urmă, încât nu pot ' să-mi amintesc exact ce am făcut. Dar cred ideea este să nu rulați ssh-add, ci doar să rulați ssh direct. Ar trebui să apară o fereastră care va apărea ca frază de acces pentru cheie și cu o casetă de selectare pentru a vă permite să o stocați în breloc.
  • @Sorin – la fel și a mea! A trebuit să intru o dată, demult, iar Mac-ul mi-a păstrat-o de atunci. Sperăm că sfatul lui Harald ' vă va ajuta.
  • Vă referiți la parola Keychain (adică parola dvs. de conectare) sau la cheia ' fraza de acces? Dacă este ' acesta din urmă, sunteți expresiile dvs. de acces stocate definitiv în Keychain? Puteți verifica acest lucru deschizând Keychain Access și căutându-l în cheia de conectare.

Răspuns

Pe OSX , clientul nativ ssh-add are un argument special pentru a salva fraza de acces a cheii private în brelocul OSX, ceea ce înseamnă că autentificarea dvs. normală îl va debloca pentru a fi utilizat cu ssh. Pe OSX Sierra și mai târziu, trebuie să configurați SSH pentru a utiliza întotdeauna brelocul (a se vedea pasul 2 de mai jos).

Alternativ puteți utiliza o cheie fără o expresie de acces, dar dacă preferați securitatea care este cu siguranță acceptabilă cu acest flux de lucru.

Pasul 1 – Stocați cheia în breloc

Faceți acest lucru o singură dată:

ssh-add -K ~/.ssh/[your-private-key] 

Introduceți fraza de acces cheie și nu veți fi solicitat din nou.

(Dacă sunteți pe o versiune OSX pre-Sierra, ați terminat, pasul 2 nu este necesar.)

Pasul 2 – Configurați SSH pentru a utiliza întotdeauna brelocul

Se pare că OSX Sierra a eliminat comportamentul convenabil de a păstra cheile dvs. între conectări și actualizarea la ssh nu mai folosește brelocul în mod implicit. Din această cauză, vi se va solicita să introduceți fraza de acces pentru o cheie după ce faceți upgrade și din nou după fiecare repornire.

Soluția este destul de simplă și este prezentată în acest comentariu despre firul github . Iată cum îl configurați:

  1. Asigurați-vă că ați finalizat pasul 1 de mai sus pentru a stoca cheia în breloc.

  2. Dacă nu aveți deja, creați un fișier ~/.ssh/config. Cu alte cuvinte, în directorul .ssh din directorul de acasă, faceți un fișier numit config.

  3. În acel fișier .ssh/config, adăugați următoarele rânduri :

     Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa 

    Schimbați ~/.ssh/id_rsa cu numele de fișier real al cheii dvs. private. Dacă aveți alte chei private în ~/.ssh, adăugați și o linie IdentityFile pentru fiecare dintre ele. De exemplu, am o linie suplimentară care citește IdentityFile ~/.ssh/id_ed25519 pentru a 2-a cheie privată.

    UseKeychain yes este partea cheie, care îi spune SSH să caute cheia OSX în cheie. expresie de acces.

  4. Asta e! Data viitoare când încărcați orice conexiune ssh, va încerca cheile private pe care le-ați specificat și va căuta expresia de acces în brelocul OSX. Nu este necesară tastarea expresiei de acces.

Comentarii

  • @Poulsbo & @Abram – vezi actualizarea mea, Sierra a schimbat comportamentul automat și acum trebuie să rulezi ssh-add -A manual pentru a încărca brelocul salvat. Unele soluții posibile menționate mai sus.
  • @trisweb Vă mulțumim pentru sfat. joshbuchea ' de modificare a fișierului .ssh/config pare promițătoare! Consultați github.com/lionheart/openradar-mirror/issues/…
  • Funcționează excelent!În cazul meu, trebuia să folosesc steagul A în plus față de cel K pentru a adăuga cheile mele la breloc și a înregistra fraza de acces în it (ssh-add -AK ~/.ssh/[your-private-key]). Mulțumesc!
  • Chiar și cu opțiunea usekeychain, totuși constat că brelocul meu va renunța la repornirea cheii .ssh / id_rsa.
  • Am făcut exact același lucru și Mac-ul meu renunță la cheie la repornire.

Răspuns

Am avut o problemă similară, în sensul că eram întrebat de fiecare dată pentru fraza de acces pentru cheia de pub. După sugestia utilizatorului „trisweb” de mai sus, am activat aceste opțiuni la ~/.ssh/config:

Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa 

Dar încă mi-a cerut de fiecare dată când am vrut să folosesc ssh. În cele din urmă, am activat ssh -v și am găsit această linie de depanare:

debug1: key_load_private: incorrect passphrase supplied to decrypt private key 

Mi-am deschis brelocul în „Acces la breloc .app „, a găsit cheia numită” SSH: /Users/username/.ssh/id_rsa „și a deschis-o. Am dat clic pe „Afișează parola” pentru a dezvălui parola și am constatat într-adevăr că expresia de acces din brelocul de chei era o expresie de acces veche. Am actualizat expresia de acces în Keychain Access, iar acum funcționează fără parolă.

Aș fi putut actualiza și expresia de acces cu această expresie:

ssh-keygen -p -f ~/.ssh/id_rsa 

Comentarii

  • Pe Mac-ul meu parola este salvată în categoria „parolă” din lanțul „iCloud”. Am crezut că se află în lanțul „logare”.

Răspuns

La toate cele de mai sus nu au funcționat , problema mea pare să fi fost pentru că duplicam UseKeychain yes & AddKeysToAgent yes profiluri / comenzi rapide ale cheilor ssh. Mi-am actualizat fișierul ~/.ssh/config pentru a le declara o singură dată și acum toate se încarcă la conectare fără a solicita parole la pornire, de exemplu:

Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/foo IdentityFile ~/.ssh/bar Host foo HostName foo.com User fooUser IdentityFile ~/.ssh/foo Host bar HostName bar.com User barUser IdentityFile ~/.ssh/bar 

Comentarii

  • Aș recomanda Host * să urmeze reguli de gazdă specifice. Consultați man ssh_config pentru detalii.

Răspuns

De asemenea, în macOS Sierra și HighSierra (nu știți despre versiunile anterioare), rularea ssh-add -A va face ca agentul să încarce toate cheile ale căror expresii de acces sunt stocate pe Keychain … Deci foarte la îndemână

Răspuns

Adăugați cheia publică în:

.ssh/known_hosts 

Public cheia este de obicei activată:

/home/user/.ssh/id_rsa.pub 

Sper că ajută

Comentarii

  • Cred că înseamnă authorized_keys
  • Oricum, acest lucru nu ' nu funcționează dacă aveți mai multe chei!

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *