Skip to content

Instantly share code, notes, and snippets.

@sinewalker

sinewalker/ssh-pass.sh

Last active Jun 16, 2019
Embed
What would you like to do?
ssh-pass: add an SSH key to your agent with passphrase from password store, no clipboard
#!/bin/bash
#Add specified SSH keys to the SSH Agent, using SSH_ASKPASS to retrieve
#each key's passphrase from the Unix password store (pass).
#This relies upon the keys having the same names in both your key directory
#and your password store.
if [[ -z ${1} ]]; then
echo "$(basename ${0}): no SSH key specified" 1>&2
exit 1;
fi
KEY_DIR=${HOME}/key
export DISPLAY=dummy
for KEY in ${@}; do
export SSH_ASKPASS=$(mktemp -t ssh-askpass)
cat > ${SSH_ASKPASS} << EOF
#!/bin/sh
pass ${KEY}|head -1
EOF
chmod +x ${SSH_ASKPASS}
ssh-add ${KEY_DIR}/${KEY} < /dev/null
rm ${SSH_ASKPASS}
done
@sinewalker

This comment has been minimized.

Copy link
Owner Author

@sinewalker sinewalker commented Jan 3, 2019

Blogged at milosophical.me, and since improved a bit by adding the for loop to handle multiple keys (each still has the same naming constraint).

@sinewalker

This comment has been minimized.

Copy link
Owner Author

@sinewalker sinewalker commented Jun 16, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.