Autoload ssh keys using keychain on macOS

This commit is contained in:
Loic Nageleisen 2022-08-24 17:27:12 +02:00
parent dcbd4d2dbf
commit 762463af07
Signed by: lloeki
GPG key ID: D05DAEE6889F94C2

View file

@ -1,11 +1,33 @@
# start ssh agent, if no agent set # start ssh agent, if no agent set
if [[ -n "${XDG_RUNTIME_DIR}" && -z "${SSH_AUTH_SOCK}" ]]; then if [[ -n "${XDG_RUNTIME_DIR}" && -z "${SSH_AUTH_SOCK}" ]]; then
# XDG should make this linux only
# macOS starts its own agent, so, doubly so
if ! pgrep -u "$USER" ssh-agent > /dev/null; then if ! pgrep -u "$USER" ssh-agent > /dev/null; then
ssh-agent -t 24h > "${XDG_RUNTIME_DIR}/ssh-agent.env" ssh-agent -t 24h > "${XDG_RUNTIME_DIR}/ssh-agent.env"
fi fi
if [[ ! -S "${SSH_AUTH_SOCK}" ]] && [[ -f "${XDG_RUNTIME_DIR}/ssh-agent.env" ]]; then if [[ ! -S "${SSH_AUTH_SOCK}" ]] && [[ -f "${XDG_RUNTIME_DIR}/ssh-agent.env" ]]; then
source "${XDG_RUNTIME_DIR}/ssh-agent.env" > /dev/null source "${XDG_RUNTIME_DIR}/ssh-agent.env" > /dev/null
fi fi
fi fi
# autoload keys if there's an agent
if [[ -n "${SSH_AUTH_SOCK}" ]]; then
if ! ssh-add -l > /dev/null; then
case "${OSTYPE}"; in
linux*)
# TODO: unsure yet
:
;;
darwin*)
ssh-add -q --apple-load-keychain
;;
*)
:
;;
esac
fi
fi
# vim: ft=bash # vim: ft=bash