Ich möchte meine SSH-Passphrase beim Öffnen neuer Terminals nicht eingeben müssen. Leider erfordert die Lösung von starmonkey, dass das Passwort für jede Sitzung eingegeben wird. Stattdessen habe ich Folgendes in meiner .bash_profile
Datei:
# Note: ~/.ssh/environment should not be used, as it
# already has a different purpose in SSH.
env=~/.ssh/agent.env
# Note: Don't bother checking SSH_AGENT_PID. It's not used
# by SSH itself, and it might even be incorrect
# (for example, when using agent-forwarding over SSH).
agent_is_running() {
if [ "$SSH_AUTH_SOCK" ]; then
# ssh-add returns:
# 0 = agent running, has keys
# 1 = agent running, no keys
# 2 = agent not running
ssh-add -l >/dev/null 2>&1 || [ $? -eq 1 ]
else
false
fi
}
agent_has_keys() {
ssh-add -l >/dev/null 2>&1
}
agent_load_env() {
. "$env" >/dev/null
}
agent_start() {
(umask 077; ssh-agent >"$env")
. "$env" >/dev/null
}
if ! agent_is_running; then
agent_load_env
fi
# If your keys are not stored in ~/.ssh/id_rsa or ~/.ssh/id_dsa, you'll need
# to paste the proper path after ssh-add
if ! agent_is_running; then
agent_start
ssh-add
elif ! agent_has_keys; then
ssh-add
fi
unset env
Dies wird sich auch an meine Passphrase für neue Terminalsitzungen erinnern. Ich muss es nur einmal eingeben, wenn ich mein erstes Terminal nach dem Booten öffne.
Ich würde gerne gutschreiben, woher ich das habe. Es ist eine Modifikation der Arbeit eines anderen, aber ich kann mich nicht erinnern, woher sie kam. Danke anonymer Autor!
Update 2019-07-01: Ich denke nicht, dass dies alles notwendig ist. Ich arbeite jetzt konsequent daran, indem ich sicherstelle, dass in meiner .bash_profile
Datei der ssh-Agent ausgeführt wird:
eval $(ssh-agent)
Dann habe ich eine ssh
Konfigurationsdatei wie folgt eingerichtet:
touch ~/.ssh/config
chmod 600 ~/.ssh/config
echo 'AddKeysToAgent yes' >> ~/.ssh/config