Hur kan jag permanent lägga till min privata SSH-nyckel i nyckelringen så att den automatiskt är tillgänglig för ssh?

Det verkar som att ssh-add -K ~/.ssh/id_rsa laddar din nyckel men ber om lösenordet varje gång du startar om.

Jag letar efter en lösning som inte kräver att jag anger lösenordet igen mellan inloggningar.

Kommentarer

  • Kan du säger lite mer om när lösenordsprompten kommer upp för dig? Jag frågar för att jag har en ssh-nyckel för en fjärrserver, som jag försäkrar att du inte är detsamma som mitt inloggningslösenord för Mac eller något annat, och jag har inte ' t var tvungen att ange lösenord för ssh-tangenten under år . Jag kan bara öppna en terminal, skriv " ssh < server > ", och jag ' är där. Jag tror att jag först ställde in den här nyckeln under OSX 10.5. id_dsa, men jag tycker inte ' det borde ha någon betydelse.
  • Min id_rsa -nyckel har ett lösenord.
  • Jag har också problemet att jag löste det så länge sedan att jag ' inte kommer ihåg exakt vad jag gjorde. Men jag tror tanken är att inte köra ssh-add, men bara köra ssh direkt. Du bör få ett fönster som dyker upp som kommer att vara lösenordsfrasen för nyckeln och med en kryssruta så att du kan lagra den i din nyckelring.
  • @Sorin – det gör också mitt! Jag var tvungen att gå in i den en gång, för länge sedan, och Mac har sparat den åt mig sedan dess. Förhoppningsvis hjälper Harald ' råd.
  • Menar du nyckelringslösenordet (dvs. ditt inloggningslösenord) eller nyckeln ' s lösenfras? Om det ' är det senare, är dina lösenfraser definitivt lagrade i nyckelring? Du kan kontrollera detta genom att öppna Keychain Access och leta efter det i inloggningsnyckelringen.

Svar

På OSX , den infödda ssh-add -klienten har ett speciellt argument för att spara den privata nyckelns lösenfras i OSX-nyckelringen, vilket innebär att din vanliga inloggning låser upp den för användning med ssh. På OSX Sierra och senare måste du också konfigurera SSH för att alltid använda nyckelringen (se steg 2 nedan).

Alternativt kan du använda en nyckel utan lösenfras, men om du föredrar den säkerhet som verkligen är acceptabelt med detta arbetsflöde.

Steg 1 – Spara nyckeln i nyckelringen

Gör det bara en gång:

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

Ange lösenordsfrasen så kommer du inte att bli ombedd om det igen.

(Om du använder en pre-Sierra-version av OSX är du klar, steg 2 krävs inte.)

Steg 2 – Konfigurera SSH så att den alltid använder nyckelringen

Det verkar som om OSX Sierra tog bort det praktiska beteendet att kvarhålla dina nycklar mellan inloggningar och uppdateringen till ssh använder inte längre nyckelringen som standard. På grund av detta kommer du att bli ombedd att ange lösenfrasen för en nyckel efter uppgradering och igen efter varje omstart.

Lösningen är ganska enkel och beskrivs i denna github-trådkommentar . Så här ställer du in det:

  1. Se till att du har slutfört steg 1 ovan för att lagra nyckeln i nyckelringen.

  2. Om du inte redan har skapat en ~/.ssh/config -fil. Med andra ord, i .ssh -katalogen i din hemdirektör, gör en fil som heter config.

  3. I den .ssh/config -filen, lägg till följande rader :

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

    Ändra ~/.ssh/id_rsa till det faktiska filnamnet på din privata nyckel. Om du har andra privata nycklar i din ~/.ssh katalog, lägg också till en IdentityFile rad för var och en av dem. Till exempel har jag ytterligare en rad som läser IdentityFile ~/.ssh/id_ed25519 för en andra privata nyckel.

    UseKeychain yes är nyckeldelen, som ber SSH att leta efter nyckeln i din OSX-nyckelring lösenfras.

  4. Det är det! Nästa gång du laddar någon ssh-anslutning kommer den att pröva de privata nycklarna du har angett, och den kommer att leta efter deras lösenfras i OSX-nyckelringen. Ingen lösenfrasskrivning krävs.

Kommentarer

  • @Poulsbo & @Abram – se min uppdatering, Sierra ändrade det automatiska beteendet och nu måste du köra ssh-add -A manuellt för att ladda din sparade nyckelring. Några möjliga lösningar som nämns ovan.
  • @trisweb Tack för tipset. joshbuchea ' s lösning för att ändra .ssh/config filen ser lovande ut! Se github.com/lionheart/openradar-mirror/issues/…
  • Fungerar bra!I mitt fall behövde jag använda flaggan A förutom K för att lägga till mina nycklar i nyckelringen och registrera lösenfrasen i det (ssh-add -AK ~/.ssh/[your-private-key]). Tack!
  • Även med alternativet usekeychain hittar jag fortfarande att min nyckelring kommer att släppa .ssh / id_rsa-tangenten vid omstart.
  • Jag gjorde exakt samma sak och min Mac tappar fortfarande nyckel vid omstart.

Svar

Jag hade ett liknande problem, eftersom jag blev ombedd varje gång för min lösenfras för pubnyckel. Enligt förslag från användaren ”trisweb” ovan aktiverade jag dessa alternativ till ~/.ssh/config:

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

Men det frågade fortfarande varje gång jag ville använda ssh. Så småningom slog jag på ssh -v och hittade den här felsökningsraden:

debug1: key_load_private: incorrect passphrase supplied to decrypt private key 

Jag öppnade sedan min nyckelring i ”Keychain Access .app ”, hittade nyckeln med namnet” SSH: /Users/username/.ssh/id_rsa ”och öppnade den. Jag klickade på ”Visa lösenord” för att avslöja lösenordet och fann verkligen att lösenfrasen i nyckelringen var en gammal lösenfras. Jag uppdaterade lösenfrasen i Keychain Access och fungerar nu lösenordsfritt.

Jag kunde också ha uppdaterat lösenfrasen med den här frasen:

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

Kommentarer

  • I min Mac sparas lösenordet i kategorin ”lösenord” i kedjan ”iCloud”. Jag trodde att det var i ”logga in” -kedjan.

Svar

Till alla där ovanstående inte fungerade , mitt problem verkar bero på att jag duplicerade UseKeychain yes & AddKeysToAgent yes ssh-tangentprofiler / genvägar. Jag uppdaterade min ~/.ssh/config -fil för att deklarera dessa bara en gång och de laddas nu alla vid inloggning utan att behöva lösenord vid start, t.ex.:

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 

Kommentarer

  • Jag rekommenderar att Host * följer specifika värdregler. Se man ssh_config för detaljer.

Svar

Också i macOS Sierra och HighSierra (vet inte om tidigare versioner), kör ssh-add -A får agenten att ladda alla nycklar vars lösenfraser är lagrade på nyckelring … Så väldigt praktiskt

Svar

Lägg till den offentliga nyckeln i:

.ssh/known_hosts 

Public nyckeln är vanligtvis på:

/home/user/.ssh/id_rsa.pub 

Hoppas att det hjälper

Kommentarer

  • Jag tror att authorized_keys
  • Hur som helst, detta fungerar inte ' om du har mer än en tangent!

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *