better ssh
This commit is contained in:
27
.scripts/ssh-init
Executable file
27
.scripts/ssh-init
Executable file
@@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
# shellcheck disable=SC1091
|
||||||
|
|
||||||
|
mkdir -p "$HOME/.local/state"
|
||||||
|
agent_file="$HOME/.local/state/ssh-agent"
|
||||||
|
|
||||||
|
if [ -z "$SSH_AUTH_SOCK" ]; then
|
||||||
|
if [ -f "$agent_file" ] && [ -r "$agent_file" ]; then
|
||||||
|
. "$agent_file" > /dev/null 2>&1
|
||||||
|
# check if the socket is actually working
|
||||||
|
if [ "$(ssh-add -l > /dev/null 2>&1; echo $?)" -eq 2 ]; then
|
||||||
|
unset SSH_AUTH_SOCK
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -z "$SSH_AUTH_SOCK" ]; then
|
||||||
|
rm -f "$agent_file"
|
||||||
|
eval "$(ssh-agent -s | tee "$agent_file")" > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
|
||||||
|
[ -f "$agent_file" ] && (
|
||||||
|
cat "$agent_file"
|
||||||
|
exit 0
|
||||||
|
)
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "true"
|
||||||
@@ -1,22 +1,7 @@
|
|||||||
# ssh with encrypted private keys
|
# ssh with encrypted private keys
|
||||||
# $ssh_keys should be set in advance or left empty to use default keys
|
# $ssh_keys should be set in advance or left empty to use default keys
|
||||||
if type -q ssh
|
if type -q ssh
|
||||||
# start ssh agent if not already running
|
bass $(ssh-init) > /dev/null 2>&1
|
||||||
if not set -q SSH_AUTH_SOCK
|
|
||||||
if test -f "$HOME/.ssh-agent" -a -r "$HOME/.ssh-agent"
|
|
||||||
bass source "$HOME/.ssh-agent" > /dev/null 2>&1
|
|
||||||
# check if the socket is actually working
|
|
||||||
if not ssh-add -l > /dev/null 2>&1
|
|
||||||
command rm -f "$HOME/.ssh-agent"
|
|
||||||
set -e SSH_AUTH_SOCK
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
if not set -q SSH_AUTH_SOCK 2>&1
|
|
||||||
command rm -f "$HOME/.ssh-agent"
|
|
||||||
bass eval (ssh-agent -s | tee "$HOME/.ssh-agent") > /dev/null 2>&1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
# only need to input passphrase once per session
|
# only need to input passphrase once per session
|
||||||
function sshs
|
function sshs
|
||||||
|
|||||||
Reference in New Issue
Block a user