Hoe kan ik mijn SSH-privésleutel permanent toevoegen aan Keychain, zodat deze automatisch beschikbaar is voor SSH?

Het lijkt erop dat ssh-add -K ~/.ssh/id_rsa uw sleutel zal laden, maar elke keer dat u opnieuw opstart om het wachtwoord zal vragen.

Ik ben op zoek naar een oplossing waarbij ik niet het sleutelwachtwoord tussen de aanmeldingen opnieuw moet invoeren.

Opmerkingen

  • Kan zegt u iets meer over wanneer de wachtwoordprompt voor u opkomt? Ik vraag het omdat ik een ssh-key heb voor een externe server, waarvan ik verzeker je dat het niet hetzelfde is als mijn Mac-inlogwachtwoord of zoiets, en ik heb ' t moeten invoeren wachtwoord voor de ssh-key voor jaar . Ik kan gewoon een terminal openen, typ " ssh < server > ", en ik ' ben daar. Ik denk dat ik deze sleutel voor het eerst heb ingesteld onder OSX 10.5. id_dsa, maar ik denk niet dat ' dat zou moeten uitmaken.
  • Mijn id_rsa sleutel heeft een wachtwoord.
  • Ik heb ook het probleem dat ik dit zo lang geleden heb opgelost dat ik ' niet precies kan herinneren wat ik deed. Maar ik denk dat het de bedoeling is om niet ssh-add uit te voeren, maar gewoon ssh rechtstreeks. Je zou een venster moeten laten verschijnen met de wachtwoordzin voor de sleutel, en met een selectievakje om het in je sleutelhanger op te slaan.
  • @Sorin – dat geldt ook voor het mijne! Ik heb het een keer moeten invoeren, lang geleden, en de Mac heeft het sindsdien voor me bewaard. Hopelijk helpt het advies van Harald ' s.
  • Bedoel je het sleutelhangerwachtwoord (dat wil zeggen je inlogwachtwoord) of de sleutel ' s wachtwoordzin? Als het ' het laatste is, zijn uw wachtwoordzinnen dan zeker opgeslagen in Keychain? U kunt dit controleren door Sleutelhangertoegang te openen en ernaar te zoeken in de inlogsleutelhanger.

Antwoord

Op OSX heeft de native ssh-add -client een speciaal argument om de wachtwoordzin van de privésleutel op te slaan in de OSX-sleutelhanger, wat betekent dat je normale login deze ontgrendelt voor gebruik met ssh. Op OSX Sierra en later moet u ook SSH configureren om altijd de sleutelhanger te gebruiken (zie stap 2 hieronder).

Als alternatief kunt u een sleutel zonder wachtwoordzin gebruiken, maar als u de voorkeur geeft aan de beveiliging die zeker acceptabel is met deze workflow.

Stap 1 – Bewaar de sleutel in de sleutelhanger

Doe dit een keer:

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

Voer uw sleutelwachtwoord in, en u wordt er niet meer om gevraagd.

(Als u een pre-Sierra-versie van OSX gebruikt, bent u klaar, stap 2 is niet vereist.)

Stap 2 – Configureer SSH om altijd de sleutelhanger te gebruiken

Het lijkt erop dat OSX Sierra het gemakkelijke gedrag van het bewaren van je sleutels heeft verwijderd tussen logins, en de update naar ssh gebruikt niet langer standaard de sleutelhanger. Daarom wordt u na het upgraden gevraagd om de wachtwoordzin voor een sleutel in te voeren, en opnieuw na elke herstart.

De oplossing is vrij eenvoudig en wordt beschreven in deze Github-threadreactie . Hier is hoe u het instelt:

  1. Zorg ervoor dat u stap 1 hierboven heeft voltooid om de sleutel in de sleutelhanger op te slaan.

  2. Als je dit nog niet hebt gedaan, maak dan een ~/.ssh/config -bestand aan. Met andere woorden, maak in de .ssh -directory in je thuismap een bestand met de naam config.

  3. Voeg in dat .ssh/config -bestand de volgende regels toe :

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

    Verander ~/.ssh/id_rsa in de daadwerkelijke bestandsnaam van uw privésleutel. Als u andere privésleutels in uw ~/.ssh directory, voeg ook een IdentityFile regel toe voor elk van hen. Ik heb bijvoorbeeld een extra regel met de tekst IdentityFile ~/.ssh/id_ed25519 voor een 2e privésleutel.

    De UseKeychain yes is het belangrijkste onderdeel, dat SSH vertelt om in je OSX-sleutelhanger naar de sleutel te zoeken wachtwoordzin.

  4. Dat is het! De volgende keer dat u een ssh-verbinding laadt, zal het de privésleutels proberen die u heeft gespecificeerd, en het zal naar hun wachtwoordzin zoeken in de OSX-sleutelhanger. U hoeft geen wachtwoordzin te typen.

Reacties

  • @Poulsbo & @Abram – zie mijn update, Sierra heeft het automatische gedrag veranderd en nu moet je rennen ssh-add -A handmatig om uw opgeslagen sleutelhanger te laden. Enkele mogelijke oplossingen waarnaar hierboven wordt verwezen.
  • @trisweb Bedankt voor de tip. joshbuchea ' s oplossing om het .ssh/config bestand te wijzigen ziet er veelbelovend uit! Zie github.com/lionheart/openradar-mirror/issues/…
  • Werkt prima!In mijn geval moest ik naast de K de vlag A gebruiken om mijn sleutels aan de sleutelhanger toe te voegen en de wachtwoordzin te registreren in it (ssh-add -AK ~/.ssh/[your-private-key]). Bedankt!
  • Zelfs met de optie usekeychain, merk ik nog steeds dat mijn sleutelhanger de .ssh / id_rsa-sleutel laat vallen bij het opnieuw opstarten.
  • Ik deed precies hetzelfde en mijn Mac laat de key bij herstarten.

Answer

Ik had een soortgelijk probleem, in die zin dat mij werd gevraagd elke keer voor mijn pub-key wachtwoordzin. Per suggestie van gebruiker “trisweb” hierboven, heb ik deze opties ingeschakeld voor ~/.ssh/config:

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

Maar het werd nog steeds gevraagd elke keer dat ik ssh wilde gebruiken. Uiteindelijk heb ik ssh -v ingeschakeld en deze foutopsporingsregel gevonden:

debug1: key_load_private: incorrect passphrase supplied to decrypt private key 

Ik opende vervolgens mijn sleutelhanger in “Sleutelhangertoegang .app “, vond de sleutel genaamd” SSH: /Users/username/.ssh/id_rsa “en opende deze. Ik klikte op “Wachtwoord weergeven” om het wachtwoord te onthullen en ontdekte inderdaad dat de wachtwoordzin in de sleutelring een oude wachtwoordzin was. Ik heb de wachtwoordzin in Sleutelhangertoegang bijgewerkt en werkt nu zonder wachtwoord.

Ik had de wachtwoordzin ook kunnen bijwerken met deze zin:

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

Reacties

  • Op mijn Mac wordt het wachtwoord opgeslagen in de categorie “wachtwoord” van de “iCloud” -keten. Ik dacht dat het in de “log in” -keten zat.

Antwoord

Aan iedereen waar het bovenstaande niet werkte , lijkt mijn probleem te zijn geweest omdat ik de UseKeychain yes & AddKeysToAgent yes in totaal dupliceerde SSH-toetsprofielen / snelkoppelingen. Ik heb mijn ~/.ssh/config -bestand bijgewerkt om deze slechts één keer te declareren en ze worden nu allemaal geladen bij het inloggen zonder om wachtwoorden te vragen bij het opstarten, bijvoorbeeld:

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 

Reacties

  • Ik zou Host * aanbevelen na specifieke hostregels. Zie man ssh_config voor details.

Antwoord

Ook in macOS Sierra en HighSierra (weet niet van eerdere versies), draaiend ssh-add -A zorgt ervoor dat de agent alle sleutels laadt waarvan de wachtwoordzinnen zijn opgeslagen op Keychain … Zo erg handig

Antwoord

Voeg de openbare sleutel toe in:

.ssh/known_hosts 

Openbaar sleutel staat meestal op:

/home/user/.ssh/id_rsa.pub 

Hoop dat het helpt

Reacties

  • Ik denk dat de authorized_keys
  • Hoe dan ook, dit ' niet werkt als je meer dan één sleutel hebt!

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *