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
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:
-
Asigurați-vă că ați finalizat pasul 1 de mai sus pentru a stoca cheia în breloc.
-
Dacă nu aveți deja, creați un fișier
~/.ssh/config. Cu alte cuvinte, în directorul.sshdin directorul de acasă, faceți un fișier numitconfig. -
În acel fișier
.ssh/config, adăugați următoarele rânduri :Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsaSchimbați
~/.ssh/id_rsacu numele de fișier real al cheii dvs. private. Dacă aveți alte chei private în~/.ssh, adăugați și o linieIdentityFilepentru fiecare dintre ele. De exemplu, am o linie suplimentară care citeșteIdentityFile ~/.ssh/id_ed25519pentru a 2-a cheie privată.UseKeychain yeseste partea cheie, care îi spune SSH să caute cheia OSX în cheie. expresie de acces. -
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 -Amanual 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/configpare 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 celKpentru 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țiman ssh_configpentru 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!
id_rsaare o parolă.ssh-add, ci doar să rulațisshdirect. 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.