ssh-agent funktioniert nur als Befehl und nicht in einem Skript in macOS

469
franc

Ich habe einen Mac mit macOS 10.11.6 und hatte das Problem, dass das Kennwort (für den privaten Schlüssel) nicht gespeichert wurde, wenn ich mich über SSH mit einem Server verbinde. Ich musste es bei jedem Login eingeben. So fand ich diese Lösung hier nach dieser Frage:

"Mac OS X: Schlüsselbund speichert die Passphrase nicht, wenn eine Verbindung zum Remote-Host über ssh als root hergestellt wird" und wenn ich zwei Befehle ausführte:

eval `ssh-agent -s` /usr/bin/ssh-add -k /Volumes/path/to/my/ssh-key 

in der Kommandozeile funktioniert es. Obwohl ich ein "Schlüsselelement-Element konnte nicht erstellt werden" erhalten, wird das Kennwort gespeichert, solange ich die Registerkarte "Terminal" nicht schließe, wo ich diese Befehle eingebe.

Wenn ich diese beiden Befehle in ein Shell-Skript stecke und es als denselben Benutzer (root) wie zuvor ausführte, wird der Schlüssel bei der nächsten Anmeldung vergessen. Dies ist das einfache Skript:

#!/bin/bash eval `ssh-agent -s` /usr/bin/ssh-add -k /Volumes/path/to/my/ssh-key 

Ich gebe das Passwort ein und die SSH-Sitzung wird geöffnet, aber nach dem Beenden des Passworts ist das Passwort nicht mehr vorhanden. Ich muss es erneut eingeben.

Was ist mein Fehler hier möglicherweise?

Vielen Dank, Frank

0

1 Antwort auf die Frage

0
franc

Ich habe jetzt einen Alias ​​in meine bashrc eingefügt und damit funktioniert es ohne Probleme :)

alias da='eval `ssh-agent -s` && /usr/bin/ssh-add -K /Volumes/TC20GB/dickies/root/dickies.ssh'