2016-09-22 09:21:53 +0000 2016-09-22 09:21:53 +0000
607
607

macOS blijft mijn ssh wachtwoordzin vragen sinds ik geupdate ben naar Sierra

Vroeger onthield hij de passphrase, maar nu vraagt hij het me elke keer.

Ik heb gelezen dat ik de publieke sleutel met dit commando moet regenereren, wat ik gedaan heb:

ssh-keygen -y -f id_rsa > id_rsa.pub

maar het heeft niets opgelost.

Hoe kan ik ervoor zorgen dat macOS mijn passphrase weer onthoudt?

Antwoorden (12)

1168
1168
1168
2016-12-19 12:04:25 +0000

In de laatste versie van macOS (10.12.2), is dit eenvoudig te verhelpen. Je hoeft alleen maar je ~/.ssh/config te bewerken en de UseKeychain optie aan te zetten:

Host *
    UseKeychain yes

Er is geen noodzaak om iets anders te veranderen. Nu werkt alles weer zoals het werkte voor de laatste updates. U hoeft geen sleutels toe te voegen aan ssh-agent.

  • *

Edit: Het kan zijn dat je nog een keer je wachtwoordzin moet invoeren. Als u die niet weet, volg dan deze instructies om hem te onthullen.

193
193
193
2016-09-23 12:53:05 +0000

Ik had hetzelfde probleem. MacOS Sierra sleutelhanger blijft vragen om de passphrase. Je idrsa moet versleuteld zijn met een passphrase voor de veiligheid. Probeer het dan toe te voegen aan de sleutelhanger `ssh-add -K ~/.ssh/idrsa`

Als uw sleutel in een andere map staat dan ~/.ssh vervang het dan door de juiste map.

Keychain kent nu uw ssh sleutel en, hopelijk, werkt alles nu (de mijne wel)

75
75
75
2016-10-09 14:39:56 +0000

Dit loste mijn soortgelijke probleem op:

/usr/bin/ssh-add -K

Dit slaat wachtzinnen op in je sleutelhanger.

Update (bedankt @EasyCo): Dit werkt maar blijft niet bestaan tussen herstarts. De oplossing van @jukka-suomela op deze pagina werkt wel tussen herstarts. U kunt dat antwoord hier vinden: https://superuser.com/a/1158050/234685

41
41
41
2016-10-29 17:16:24 +0000

Ik hoefde maar één keer de juiste passphrase in te voeren en het begon te werken. Het probleem was dat ik mijn originele SSH wachtwoordzin niet meer wist, maar die heb ik hersteld door deze stappen van Github te volgen:

  • In Finder, zoek naar de Keychain Access app.
  • In Keychain Access, zoek naar SSH.
  • Dubbelklik op de vermelding voor uw SSH-sleutel om een nieuw dialoogvenster te openen.
  • Sleutelhanger toegang dialoogvensterIn de linkerbenedenhoek, selecteer Wachtwoord tonen.
  • Je wordt nu gevraagd om je administratieve wachtwoord. Typ het in het dialoogvenster “Toegang tot sleutelhanger”.
  • Uw wachtwoord wordt nu onthuld.
19
19
19
2016-09-27 14:40:37 +0000

Geen van de bovenstaande oplossingen werkte na installatie van Sierra over El Capitan op een nieuwe MacBook Pro. Sierra slaat per ontwerp geen SSH sleutels op in de sleutelhanger.

Twee oplossingen werkten voor mij. De ene is om het commando ssh-add -A &> /dev/null toe te voegen aan ~/.bash_profile. Telkens wanneer u de terminal opent, zal dit commando worden uitgevoerd (het &> /dev/null gedeelte stuurt de uitvoer van het commando naar het bestand /dev/null).

Een meer gecompliceerde maar iets snellere oplossing is om een plist te maken met het commando dat wordt uitgevoerd iedere keer dat het OS wordt opgestart zoals voorgesteld in SSH keys opslaan in macOS Sierra keychain . Hiervoor moet Xcode gebruikt worden om het bestand te maken.

18
18
18
2016-12-16 06:14:08 +0000

Een oplossing is om het volgende toe te voegen aan uw ~/.ssh/config bestand:

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

Overgenomen van: https://www.reddit.com/r/osx/comments/52zn5r/difficultieswith_sshagent_in_macossierra/ An zie ook: https://apple.stackexchange.com/a/264974/3810

8
8
8
2016-09-22 10:58:21 +0000

Vanmorgen had ik hetzelfde probleem als jij na het updaten naar Sierra. In mijn geval was het id_rsa bestand versleuteld en na ontsleuteling werkte het als een tovermiddel.

  1. Controleer of uw id_rsa bestand gecodeerd is met het volgende commando: cat ~/.ssh/id_rsa | head -2
  2. Als op de tweede regel Proc-Type: 4,ENCRYPTED staat, is het versleuteld en kunt u proberen het te ontsleutelen
  3. Belangrijk: maak een backup van je originele id_rsa bestand! Gebruik het commando cp ~/.ssh/id_rsa ~/.ssh/id_rsa.bak
  4. Decrypteer uw private sleutel met openssl rsa -in ~/.ssh/id_rsa -out ~/.ssh/id_rsa.decrypted
  5. Verwijder de originele sleutel (rm ~/.ssh/id_rsa) en vervang hem door de ontcijferde sleutel: mv ~/.ssh/id_rsa.decrypted ~/.ssh/id_rsa

Na deze stappen zou u ssh weer moeten kunnen gebruiken.

8
8
8
2017-02-15 02:15:22 +0000

Ik probeerde meerdere antwoorden hier, maar had nog steeds problemen met het doorgeven van sleutels op afstand (zoals bij gebruik van capistrano). Om het op te lossen, las ik de technote van apple en maakte dit mijn config bestand. Ik hoef niet meer om mijn wachtwoord te vragen! https://developer.apple.com/library/content/technotes/tn2449/_index.html

Host *  
IdentityFile ~/.ssh/id_rsa  
IgnoreUnknown UseKeychain  
UseKeychain yes  
AddKeysToAgent yes
5
5
5
2017-01-02 00:05:33 +0000

Ik had dit probleem ook toen ik wat code probeerde te implementeren met Capistrano . Zeer frustrerend. Hier zijn twee methodes die ik ken om met dit probleem om te gaan.

Methode 1: Voeg alle bekende sleutels toe aan de SSH agent.

Dus een oplossing die ik gevonden heb is om ssh-add met de -A optie uit te voeren - die voegt alle bekende identiteiten aan de SSH agent toe met alle passphrases die in je sleutelbos zijn opgeslagen - zoals dit:

ssh-add -A

Dit werkt, maar het blijft niet behouden na een herstart. Dus als je je hier nooit meer zorgen over wilt maken, open dan gewoon het ~/.bash_profile bestand van je gebruiker zoals dit:

nano ~/.bash_profile

En voeg deze regel toe aan de onderkant:

ssh-add -A 2>/dev/null;

Als je nu een nieuw Terminal venster opent, zou alles goed moeten zijn!

Methode 2: Voeg alleen SSH sleutels toe die in de keychain zitten aan de agent.

Dus hoewel de ssh-add -A optie zou moeten werken voor de meeste basisgevallen, kwam ik onlangs een probleem tegen waarbij ik 6-7 Vagrant boxes (die SSH sleutels/identiteiten gebruiken voor toegang) op een machine had ingesteld bovenop de meer gebruikelijke id_rsa.pub op zijn plaats.

Lang verhaal kort, ik werd uiteindelijk buitengesloten van een server op afstand door te veel mislukte pogingen gebaseerd op SSH sleutels/identiteiten aangezien de toegang tot de server gebaseerd was op een wachtwoord en SSH sleutels/identiteiten SSH sleutels/identiteiten zijn. Dus de SSH agent probeerde alle van mijn SSH sleutels, mislukte en ik kon niet eens bij de wachtwoord prompt komen.

Het probleem is dat ssh-add -A gewoon willekeurig elke SSH sleutel/identiteit die je hebt aan de agent toevoegt, zelfs als het niet nodig is om dat te doen; zoals in het geval van Vagrant boxes.

Mijn oplossing na veel testen was als volgt.

Ten eerste, als je meer SSH keys/identiteiten aan je agent hebt toegevoegd dan je nodig hebt-zoals getoond met ssh-add -l dan verwijder je ze allemaal van de agent zoals dit:

ssh-add -D

Als dat gedaan is, start dan de SSH agent als een achtergrond proces zoals dit:

eval "$(ssh-agent -s)"

Nu wordt het vreemd en ik ben er niet zeker van waarom. In sommige gevallen kun je specifiek de ~/.ssh/id_rsa.pub sleutel/identiteit aan de agent toevoegen, zoals dit:

ssh-add ~/.ssh/id_rsa.pub

Typ je passphrase in, druk op Return en je zou goed moeten zijn om te gaan.

Maar in andere gevallen is alleen dit al genoeg om de sleutel/identiteit toegevoegd te krijgen:

ssh-add -K

Als dat allemaal gewerkt heeft, typ dan ssh-add -l in en je zou één SSH sleutel/identiteit in de lijst moeten zien staan.

Alles goed? Open nu je .bash_profile:

nano ~/.bash_profile

En voeg deze regel toe aan de onderkant; commentaar of verwijder de -A versie als je die al hebt:

ssh-add -K 2>/dev/null;

Dat zal ervoor zorgen dat de SSH sleutel/identiteit opnieuw geladen wordt in de SSH agent bij elke opstart/reboot.

UPDATE: Apple heeft nu een UseKeychain optie toegevoegd aan de open SSH config opties en beschouwt ssh-add -A ook als een oplossing.

Vanaf macOS Sierra 10.12.2, heeft Apple (naar ik aanneem) een UseKeychain config optie toegevoegd voor SSH configs. Het raadplegen van de man page (via man ssh_config) laat de volgende info zien:

UseKeychain
        On macOS, specifies whether the system should search for
        passphrases in the user's keychain when attempting to use a par-
        ticular key. When the passphrase is provided by the user, this
        option also specifies whether the passphrase should be stored
        into the keychain once it has been verified to be correct. The
        argument must be ``yes'' or ``no''. The default is ``no''.

Wat erop neerkomt dat Apple de oplossing ziet als ofwel het toevoegen van ssh-add -A aan je .bash_profile zoals uitgelegd in dit Open Radar ticket of het toevoegen van UseKeychain als een van de opties in een per gebruiker ~/.ssh/config.

4
4
4
2017-01-28 08:58:48 +0000

Jukka Suomela ](https://superuser.com/users/43242/jukka-suomela)‘s antwoord is correct, maar als je openssh gebruikt, geïnstalleerd vanaf homebrew, dan moet je het ook verwijderen met:

brew remove openssh

…om terug te schakelen naar systeem standaard openssh, omdat homebrew’s geen ondersteuning biedt voor UseKeychain ssh config entry.

2
2
2
2016-12-10 21:04:01 +0000

Je hebt een .plist bestand nodig dat aan ~/Library/LaunchAgents/ is toegevoegd om ssh-add -A bij elke opstart van macOS uit te voeren.

Er is een enkel commando dat dit doet (van SSH-keys-in-macOS-Sierra-keychain ) en dat is:

curl -o ~/Library/LaunchAgents/ssh.add.a.plist https://raw.githubusercontent.com/jirsbek/SSH-keys-in-macOS-Sierra-keychain/master/ssh.add.a.plist
2
2
2
2017-01-01 23:56:10 +0000

Ik heb alle oplossingen geprobeerd die hier zijn voorgesteld, maar ik heb geen sleutelhanger ingesteld op mijn Mac.

Het toevoegen van de volgende regel bovenaan het .ssh/config bestand op zowel de lokale als de externe machine werkte voor mij.

PubkeyAcceptedKeyTypes=+ssh-dss