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
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:
-
Forsikre deg om at du har fullført trinn 1 ovenfor for å lagre nøkkelen i nøkkelringen.
-
Hvis du ikke allerede har det, oppretter du en
~/.ssh/config
-fil. Med andre ord, i.ssh
-katalogen i hjemmet ditt, lag en fil kaltconfig
. -
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 enIdentityFile
linje for hver av dem. For eksempel har jeg en ekstra linje som leserIdentityFile ~/.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. -
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 tilK
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. Seman 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!
id_rsa
-tasten har et passord på seg.ssh-add
, men bare kjøressh
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.