aboutsummaryrefslogtreecommitdiff
path: root/ssh-agent-loadkey
blob: 1207a05686a25961b244c307ad975a23fdb872c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#!/bin/bash
#
# Load a key into the ssh-agent
#

# Parameters
BASENAME="`basename $0`"
KEYS="$HOME/.ssh/keys"
TYPE="$1"
HANDLE="$2"
KEY="$KEYS/$TYPE/$HANDLE"

# Check
if [ -z "$HANDLE" ]; then
  echo "usage: $BASENAME <keytype> <handle>"
  echo "available keys:"
  echo ""
  ( cd $HOME/.ssh/keys && find -name '*.pub' ) | grep -v decomissioned | sed -e 's/^/\t/'
  exit 1
elif [ ! -e "$KEY" ]; then
  echo "$BASENAME: file not found: $KEY"
  exit 1
fi

# Check if the selected option has a custom procedure (monkeysphere, keyringer, etc)
if [ -x "$KEY.askpass" ]; then
  # SSH-ADD(1) says: "Note that on some machines it may be necessary to redirect the input from /dev/null to make this work".
  SSH_ASKPASS="$KEYS.askpass" ssh-add $KEY < /dev/null
else
  ssh-add $KEY
fi