Hvordan kan jeg legge SSH-nøkkelen min permanent til nøkkelringen, slik at den automatisk er tilgjengelig for ssh?

Det ser ut til at ssh-add -K ~/.ssh/id_rsa vil laste inn nøkkelen din, men vil be om passordet hver gang du starter på nytt.

Jeg leter etter en løsning som ikke krever at jeg oppgir nøkkelpassordet på nytt mellom pålogginger.

Kommentarer

  • Kan sier du litt mer om når passordmeldingen kommer opp for deg? Jeg spør fordi jeg har en ssh-nøkkel for en ekstern server, som jeg forsikrer deg om er ikke det samme som påloggingspassordet til Mac eller noe, og jeg har ikke ' t måtte skrive inn passord for ssh-nøkkelen i år . Jeg kan bare åpne en terminal, skriv " ssh < server > ", og jeg ' er der. Jeg tror jeg først satte denne nøkkelen opp under OSX 10.5. id_dsa, men jeg tror ikke ' det burde ha betydning.
  • Min id_rsa -tasten har et passord på seg.
  • Jeg har også problemet med at jeg løste dette for så lenge siden at jeg ' ikke husker nøyaktig hva jeg gjorde. Men jeg tror ideen er å ikke kjøre ssh-add, men bare kjøre ssh direkte. Du bør få et vindu som dukker opp som passord for nøkkelen, og med en avkrysningsrute som lar deg lagre den i nøkkelringen.
  • @Sorin – det gjør også mitt! Jeg måtte gå inn i den en gang, for lenge siden, og Mac-en har lagret den for meg siden den gang. Forhåpentligvis hjelper Harald ' råd.
  • Mener du passordet til nøkkelring (dvs. passordet ditt) eller nøkkelen ' s passfrase? Hvis det ' er sistnevnte, er passordsetningene dine definitivt lagret i nøkkelring? Du kan sjekke dette ved å åpne Keychain Access og se etter det i påloggingsnøkkelringen.

Svar

På OSX , den innfødte ssh-add -klienten har et spesielt argument for å lagre passordfrasen til den private nøkkelen i OSX-nøkkelringen, noe som betyr at din normale pålogging vil låse den opp for bruk med ssh. På OSX Sierra og senere, må du også konfigurere SSH slik at du alltid bruker nøkkelringen (se trinn 2 nedenfor).

Alternativt kan du bruke en nøkkel uten passordfrase, men hvis du foretrekker sikkerheten som absolutt er akseptabel med denne arbeidsflyten.

Trinn 1 – Lagre nøkkelen i nøkkelringen

Bare gjør dette en gang:

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

Skriv inn nøkkelpassordet ditt, og du blir ikke bedt om det igjen.

(Hvis du bruker en pre-Sierra-versjon av OSX, er du ferdig, trinn 2 er ikke nødvendig.)

Trinn 2 – Konfigurer SSH slik at den alltid bruker nøkkelringen

Det ser ut til at OSX Sierra fjernet den praktiske oppførselen til å vedvare nøklene dine mellom pålogginger, og oppdateringen til ssh bruker ikke lenger nøkkelringen som standard. På grunn av dette vil du bli bedt om å angi passordfrasen for en nøkkel etter at du oppgraderer, og igjen etter hver omstart.

Løsningen er ganske enkel, og er beskrevet i denne github-trådkommentaren . Slik konfigurerer du det:

  1. Forsikre deg om at du har fullført trinn 1 ovenfor for å lagre nøkkelen i nøkkelringen.

  2. Hvis du ikke allerede har det, oppretter du en ~/.ssh/config -fil. Med andre ord, i .ssh -katalogen i hjemmet ditt, lag en fil kalt config.

  3. I den .ssh/config -filen, legg til følgende linjer :

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

    Endre ~/.ssh/id_rsa til det faktiske filnavnet til din private nøkkel. Hvis du har andre private nøkler i ~/.ssh katalog, legg også til en IdentityFile linje for hver av dem. For eksempel har jeg en ekstra linje som leser IdentityFile ~/.ssh/id_ed25519 for en 2. privat nøkkel.

    UseKeychain yes er nøkkeldelen, som forteller SSH om å se i OSX-nøkkelringen etter nøkkelen passfrase.

  4. Det er det! Neste gang du laster inn en ssh-tilkobling, prøver den de private nøklene du har spesifisert, og den vil se etter passordfrasen i OSX-nøkkelringen. Ingen passordfrase kreves.

Kommentarer

  • @Poulsbo & @Abram – se oppdateringen min, Sierra endret den automatiske oppførselen, og nå må du kjøre ssh-add -A manuelt for å laste den lagrede nøkkelringen din. Noen mulige løsninger det er referert til ovenfor.
  • @trisweb Takk for tipset. joshbuchea ' s løsning for å endre .ssh/config -filen ser lovende ut! Se github.com/lionheart/openradar-mirror/issues/…
  • Fungerer bra!I mitt tilfelle trengte jeg å bruke A -flagget i tillegg til K for å legge til nøklene mine i nøkkelringen og registrere passordfrasen i det (ssh-add -AK ~/.ssh/[your-private-key]). Takk!
  • Selv med alternativet brukekjede, finner jeg fremdeles at nøkkelringen min vil slippe .ssh / id_rsa-tasten ved omstart.
  • Jeg gjorde akkurat det samme og Mac-en min slipper fortsatt nøkkel ved omstart.

Svar

Jeg hadde et lignende problem ved at jeg ble spurt hver gang for passordfrasen min. I henhold til forslag fra brukeren «trisweb» ovenfor slo jeg på disse alternativene til ~/.ssh/config:

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

Men det ble fortsatt bedt om hver gang jeg ønsket å bruke ssh. Til slutt slo jeg på ssh -v og fant denne feilsøkingslinjen:

debug1: key_load_private: incorrect passphrase supplied to decrypt private key 

Jeg åpnet nøkkelringen min i «Nøkkelringstilgang .app «, fant nøkkelen med navnet» SSH: /Users/username/.ssh/id_rsa «og åpnet den. Jeg klikket på «Vis passord» for å avsløre passordet og fant faktisk at passordfrasen i nøkkelringen var en gammel passordfrase. Jeg oppdaterte passordet i nøkkelringstilgang, og nå fungerer passordfritt.

Jeg kunne også ha oppdatert passordfrasen med denne setningen:

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

Kommentarer

  • I min Mac er passordet lagret i «passord» -kategorien i «iCloud» -kjeden. Jeg trodde det var i «logg inn» -kjeden.

Svar

Til alle der ovennevnte ikke fungerte problemet ser ut til å ha vært fordi jeg dupliserte UseKeychain yes & AddKeysToAgent yes i det hele tatt ssh nøkkelprofiler / snarveier. Jeg oppdaterte ~/.ssh/config -filen for å kunngjøre disse bare en gang, og de lastes nå inn ved pålogging uten å be om passord ved oppstart, f.eks:

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

  • Jeg vil anbefale Host * være etter spesifikke vertsregler. Se man ssh_config for detaljer.

Svar

Også i macOS Sierra og HighSierra (vet ikke om tidligere versjoner), kjører ssh-add -A får agenten til å laste inn alle nøkler hvis passfraser er lagret på nøkkelring … Så veldig hendig

Svar

Legg til den offentlige nøkkelen i:

.ssh/known_hosts 

Offentlig nøkkelen er vanligvis på:

/home/user/.ssh/id_rsa.pub 

Håper det hjelper

Kommentarer

  • Jeg tror authorized_keys
  • Uansett, dette fungerer ikke ' t hvis du har mer enn en nøkkel!

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *