sinewalker
12/29/2018 - 12:04 PM

ssh-pass: add an SSH key to your agent with passphrase from password store, no clipboard

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