Limit ssh key lifetime to 12h in SSH sessions

This commit is contained in:
lachtan obecny
2026-10-22 10:59:34 +02:00
parent b3026487f0
commit 9630d412af
3 changed files with 19 additions and 1 deletions
+13 -1
View File
@@ -7,6 +7,13 @@ function _log() {
_SSH_AGENT_NO_KEYS=1
_SSH_AGENT_NOT_RUNNING=2
SSH_KEY_TIMEOUT_HOURS=${SSH_KEY_TIMEOUT_HOURS:-12}
SSH_KEY_TIMEOUT_MINUTES=$((SSH_KEY_TIMEOUT_HOURS * 60))
function _should_limit_key_lifetime() {
! is_wsl && is_ssh_session
}
for key in id_ecdsa id_rsa; do
key_filename="$HOME/.ssh/$key"
@@ -43,7 +50,12 @@ for key in id_ecdsa id_rsa; do
ssh-add "$key_filename"
fi
else
eval "$(keychain --eval --quiet --agents ssh $key)"
keychain_args=()
if _should_limit_key_lifetime; then
_log "Limiting key lifetime to $SSH_KEY_TIMEOUT_HOURS hours"
keychain_args=(--timeout "$SSH_KEY_TIMEOUT_MINUTES")
fi
eval "$(keychain --eval --quiet "${keychain_args[@]}" --agents ssh $key)"
fi
break