SSH-Zertifikat nach jedem Neustart erneut importieren, damit GIT PUSH über SSH funktioniert

SSH-Zertifikat nach jedem Neustart erneut importieren, damit GIT PUSH über SSH funktioniert

Ich verwende OSX 10.8 auf meinem MacBook Air und habe Git so konfiguriert, dass mein Repository per SSH an eine EC2-Instanz gesendet wird. Damit funktioniert alles einwandfrei.

Das einzige Problem ist, dass ich dies nach jedem Neustart tun muss, ssh-add certname.pemdamit GIT über SSH eine Verbindung zu meiner EC2-Instanz herstellen kann.

Ich bin nicht sicher, ob es sich hierbei lediglich um ein übersehenes Konfigurationsproblem handelt oder ob es dafür einen tieferen Grund gibt.

Antwort1

Kannst du nicht

ssh-add -K [keyfile]

um die Informationen zu Ihrem Schlüsselbund hinzuzufügen? Dann sind sie da, wenn Sie das nächste Mal ein Terminal starten, während Sie für diesen Schlüsselbund autorisiert sind

Antwort2

Warum nicht einfach einen Schlüssel ohne Passwort einrichten undLassen Sie git/ssh diesen Schlüssel als SSH verwendenIdentityFile?
(obwohl ssh-keygenSie beim Generieren eines Schlüssels nach einer Passphrase gefragt werden, können Sie einfach drücken enterund für die Verwendung des resultierenden Schlüssels ist keine Passphrase erforderlich).

Da Sie diesen Schlüssel automatisch erneut hinzufügen möchten, umgehen Sie jegliche Sicherheit, die Ihnen die Verwendung eines Schlüssels ohnehin bieten würde. Daher besteht kein praktischer Unterschied zwischen einem kennwortlosen Schlüssel und einem, der vom Agenten automatisch importiert wird.


Mit diesem Schlüssel soll natürlich nichts anderes möglich sein, als auf Ihren gitServer zuzugreifen (falls jemand die private Hälfte des Schlüssels in die Hände bekommt, möchten Sie nicht, dass diese Person in Ihrem Namen Befehle ausführt!).

Antwort3

Sie müssen ein Skript einrichten, um das PEM zum Schlüsselbund von OSX hinzuzufügen. Fügen Sie die folgende Zeile zu Ihrem ~/.bash_profile hinzu (oder ~/.zshrc, wenn Sie zsh verwenden).

ssh-add -K certname.pem

Schau dir das anhttps://superuser.com/a/409316/41202für mehr Details

Antwort4

Hmmm. Dies ist eine unglückliche Interaktion mit dem SSH-Design von EC2. Es wird dringend empfohlen, PEM-Dateien zu verwenden, um Instanzen zu erreichen, daher der Grund, warum Sie ssh -i <aws.pem>in allen Konnektivitätsbeispielen ...

Wie wäre es mit einem Git-Alias? Ich habe das nicht getestet, da ich keine EC2-Instanz zum Pushen habe, aber so etwas wie:

git config alias.ec2push "!sh -c 'ssh-add certname.pem && git push $1 $2'"

Dann würden Sie mit Folgendem pushen:

git ec2push <repo> <branch>

verwandte Informationen