Det ser ud til, at ssh-add -K ~/.ssh/id_rsa
vil indlæse din nøgle, men beder om adgangskoden hver gang du genstarter.
Jeg leder efter en løsning, der ikke kræver, at jeg genindtaster nøgleadgangskoden mellem logins.
Kommentarer
Svar
På OSX , den indfødte ssh-add
-klient har et specielt argument for at gemme den private nøgles adgangssætning i OSX-nøglering, hvilket betyder, at dit normale login vil låse den op til brug med ssh. På OSX Sierra og senere skal du også konfigurere SSH til altid at bruge nøglering (se trin 2 nedenfor).
Alternativt kan du bruge en nøgle uden adgangskode, men hvis du foretrækker den sikkerhed, der helt sikkert er acceptabel med denne arbejdsgang.
Trin 1 – Gem nøglen i nøglering
Bare gør dette en gang:
ssh-add -K ~/.ssh/[your-private-key]
Indtast din nøgleadgangssætning, og du bliver ikke bedt om det igen.
(Hvis du er på en pre-Sierra version af OSX, er du færdig, trin 2 er ikke påkrævet.)
Trin 2 – Konfigurer SSH til altid at bruge nøglering
Det ser ud til, at OSX Sierra fjernede den praktiske opførsel ved at fastholde dine nøgler mellem logins, og opdateringen til ssh bruger ikke længere nøglering som standard. På grund af dette bliver du bedt om at indtaste adgangssætningen for en nøgle, efter du har opgraderet, og igen efter hver genstart.
Løsningen er ret enkel og er beskrevet i denne kommentar til github-tråden . Sådan konfigurerer du det:
-
Sørg for, at du har gennemført trin 1 ovenfor for at gemme nøglen i nøglering.
-
Hvis du ikke allerede har det, skal du oprette en
~/.ssh/config
-fil. Med andre ord, i.ssh
-mappen i dit hjem dir. en fil med navnetconfig
. -
I den
.ssh/config
-fil skal du tilføje følgende linjer :Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa
Skift
~/.ssh/id_rsa
til det faktiske filnavn på din private nøgle. Hvis du har andre private nøgler i din~/.ssh
-mappe, tilføj også enIdentityFile
-linje til hver af dem. For eksempel har jeg en ekstra linje, der læserIdentityFile ~/.ssh/id_ed25519
til en 2. privat nøgle.UseKeychain yes
er nøgledelen, som fortæller SSH at se nøglen i din OSX-nøglering adgangskode. -
Det er det! Næste gang du indlæser en ssh-forbindelse, prøver den de private nøgler, du har angivet, og den vil se efter deres adgangssætning i OSX-nøglering. Ingen adgangskodetypning kræves.
Kommentarer
- @Poulsbo & @Abram – se min opdatering, Sierra ændrede den automatiske adfærd, og nu skal du køre
ssh-add -A
manuelt for at indlæse din gemte nøglering. Nogle mulige løsninger henvist til ovenfor. - @trisweb Tak for tipet. joshbuchea ' s løsning til at ændre
.ssh/config
filen ser lovende ud! Se github.com/lionheart/openradar-mirror/issues/… - Fungerer godt!I mit tilfælde var jeg nødt til at bruge
A
-flagget ud overK
til at tilføje mine nøgler til nøglering og registrere adgangssætningen i det (ssh-add -AK ~/.ssh/[your-private-key]
). Tak! - Selv med indstillingen usekeychain finder jeg stadig, at min nøglering vil slippe .ssh / id_rsa-tasten ved genstart.
- Jeg gjorde nøjagtigt det samme, og min Mac taber stadig nøgle ved genstart.
Svar
Jeg havde et lignende problem, idet jeg blev bedt om hver gang til min adgangskode til pub-key. Efter forslag fra brugeren “trisweb” ovenfor aktiverede jeg disse indstillinger til ~/.ssh/config
:
Host * UseKeychain yes AddKeysToAgent yes IdentityFile ~/.ssh/id_rsa
Men det blev stadig bedt om, hver gang jeg ville bruge ssh. Til sidst tændte jeg ssh -v
og fandt denne fejlretningslinje:
debug1: key_load_private: incorrect passphrase supplied to decrypt private key
Jeg åbnede derefter min nøglering i “Nøgleringadgang .app “, fandt nøglen med navnet” SSH: /Users/username/.ssh/id_rsa “og åbnede den. Jeg klikkede på “Vis adgangskode” for at afsløre adgangskoden og fandt faktisk, at adgangssætningen i nøglering var en gammel adgangssætning. Jeg opdaterede adgangssætningen i nøgleringadgang, og nu fungerer adgangskodefri.
Jeg kunne også have opdateret adgangssætningen med denne sætning:
ssh-keygen -p -f ~/.ssh/id_rsa
Kommentarer
- På min Mac gemmes adgangskoden i “adgangskode” -kategorien i “iCloud” -kæden. Jeg troede, det var i “log ind” kæden.
Svar
Til alle, hvor ovenstående ikke fungerede , mit problem ser ud til at have været, fordi jeg duplikerede UseKeychain yes
& AddKeysToAgent yes
i alt ssh-nøgleprofiler / genveje. Jeg opdaterede min ~/.ssh/config
fil for kun at erklære disse en gang, og de indlæses nu alle ved login uden at bede om adgangskoder ved opstart, 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 efter specifikke værtsregler. Seman ssh_config
for detaljer.
Svar
Også i macOS Sierra og HighSierra (ved ikke om tidligere versioner), hvis du kører ssh-add -A
får agenten til at indlæse alle nøgler, hvis adgangssætninger er gemt på nøglering … Så meget praktisk
Svar
Tilføj den offentlige nøgle i:
.ssh/known_hosts
Offentlig nøglen er normalt på:
/home/user/.ssh/id_rsa.pub
Håber det hjælper
Kommentarer
- Jeg tror, at
authorized_keys
- I hvert fald fungerer dette ikke ' hvis du har mere end en nøgle!
id_rsa
-tast har en adgangskode.ssh-add
, men bare køressh
direkte. Du skal få et vindue, der dukker op, som vil være adgangsudtrykket for nøglen og med et afkrydsningsfelt, så du kan gemme det i din nøglering.