Last active
March 23, 2023 23:03
-
-
Save cyberdelia/91f7ec06a745310cec0615820ead8652 to your computer and use it in GitHub Desktop.
Secure Agent — Authentication agent using the Secure Enclave
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
secure-agent --generate-completion-script fish | |
secure-agent --generate-completion-script bash | |
secure-agent --generate-completion-script zsh |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function __agent_is_started -d "check if ssh agent is already started" | |
if begin; test -f $SSH_ENV; and test -z "$SSH_AGENT_PID"; end | |
source $SSH_ENV > /dev/null | |
end | |
if test -z "$SSH_AGENT_PID" | |
return 1 | |
end | |
ps -p $SSH_AGENT_PID > /dev/null | |
return $status | |
end | |
function __agent_start -d "start a new ssh agent" | |
secure-agent daemon > $SSH_ENV | |
chmod 600 $SSH_ENV | |
source $SSH_ENV > /dev/null | |
true | |
end | |
function fish_ssh_agent --description "start ssh-agent if not started yet, or uses already started ssh-agent." | |
if test -z "$SSH_ENV" | |
set -xg SSH_ENV $HOME/.ssh/environment | |
end | |
if not __agent_is_started | |
__agent_start | |
end | |
end | |
fish_ssh_agent |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function start_ssh_agent() { | |
secure-agent daemon | head -n 2 >! $ssh_environment | |
chmod 600 $ssh_environment | |
source $ssh_environment > /dev/null | |
} | |
ssh_environment="$HOME/.ssh/environment" | |
if [[ -f "$ssh_environment" ]]; then | |
source $ssh_environment > /dev/null | |
ps x | grep secure-agent | grep -q $SSH_AGENT_PID || { | |
start_ssh_agent | |
} | |
else | |
start_ssh_agent | |
fi | |
unset ssh_environment | |
unfunction start_ssh_agent |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment