Hvordan kan jeg permanent tilføje min SSH private nøgle til nøglering, så den automatisk er tilgængelig for ssh?

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

  • Kan siger du lidt mere om, hvornår adgangskodeprompten kommer op for dig? Jeg spørger, fordi jeg har en ssh-nøgle til en fjernserver, som jeg forsikrer dig om ikke er det samme som min Mac-loginadgangskode eller noget, og jeg har ikke ' t måtte indtaste adgangskode til ssh-nøglen i år . Jeg kan bare åbne en terminal, skriv " ssh < server > ", og jeg ' er der. Jeg tror, jeg først satte denne nøgle op under OSX 10.5. id_dsa, men jeg synes ikke ' det burde have noget at gøre.
  • Min id_rsa -tast har en adgangskode.
  • Jeg har også det problem, at jeg løste dette for så længe siden, at jeg ' ikke kan huske nøjagtigt, hvad jeg gjorde. Men jeg synes ideen er at ikke køre ssh-add, men bare køre ssh 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.
  • @Sorin – det gør også min! Jeg var nødt til at indtaste det en gang for længe siden, og Macen har gemt det for mig lige siden. Forhåbentlig hjælper Harald ' s råd.
  • Mener du adgangskodeadgangskoden (dvs. din loginadgangskode) eller nøglen ' s adgangssætning? Hvis det ' er sidstnævnte, er dine adgangsudtryk bestemt gemt i nøglering? Du kan kontrollere dette ved at åbne adgang til nøglering og kigge efter det i login-nøglering.

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:

  1. Sørg for, at du har gennemført trin 1 ovenfor for at gemme nøglen i nøglering.

  2. 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 navnet config.

  3. 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å en IdentityFile -linje til hver af dem. For eksempel har jeg en ekstra linje, der læser IdentityFile ~/.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.

  4. 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 over K 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. Se man 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!

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *