diff options
Diffstat (limited to 'ssh-agent-loadkey-menu')
-rwxr-xr-x | ssh-agent-loadkey-menu | 93 |
1 files changed, 0 insertions, 93 deletions
diff --git a/ssh-agent-loadkey-menu b/ssh-agent-loadkey-menu deleted file mode 100755 index a335561..0000000 --- a/ssh-agent-loadkey-menu +++ /dev/null @@ -1,93 +0,0 @@ -#!/bin/bash -# -# Load a key from a menu. -# - -# Parameters -BASENAME="`basename $0`" -KEYS="$HOME/.ssh/keys" - -# Check -if [ ! -d "$KEYS" ]; then - echo "$BASENAME: folder not found: $KEYS" - exit 1 -fi - -# Get available keys -function __query { - ( - cd $KEYS && find -name '*.pub' | sed -e 's/.pub$//' | grep -v decomissioned | while read line; do - handle="`echo $line | cut -d '/' -f 3`" - type="`echo $line | cut -d '/' -f 2`" - echo "$handle ($type)" - done - ) -} - -# List available keys -function __list { - n="0" - __query | sort | uniq | while read key; do - echo -en "$n. $key" - echo "" - let ++n - done | column -t -c 6 -} - -# Display the keys available in the agent -function __loaded { - #ssh-add -L | cut -d ' ' -f 3 | sed -e 's/^/\t/' - - ssh-add -L | while read line; do - handle="$(basename `echo $line | cut -d ' ' -f 3`)" - type="`echo $line | cut -d ' ' -f 1 | sed -e 's/^ssh-//'`" - echo "$handle ($type)" - done | column -t -c 6 -} - -# Key chooser mennu -function __chooser { - echo "Usage: $BASENAME <keytype> <handle>" - echo "" - echo "Available keys" - echo "" - __list | sed -e 's/^/\t/' - echo "" - echo "Current loaded keys:" - echo "" - __loaded | sed -e 's/^/\t/' - echo "" - - read -rep "Choose key: " n - - # Check the selected option - if [ ! -z "$n" ]; then - key="$(__list | grep -E "(^$n.| $n:)" | sed -e "s/^[0-9]*. //" | cut -d : -f 1)" - - if [ ! -z "$key" ]; then - __load $key - fi - fi -} - -# Load a key -function __load { - HANDLE="$1" - TYPE="`echo $2 | sed -e 's/(//' -e 's/)//'`" - KEY="$KEYS/$TYPE/$HANDLE" - - # 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="$KEY.askpass" ssh-add $KEY < /dev/null - else - ssh-add $KEY - fi -} - -# Dispatch -if [ ! -z "$2" ]; then - __load $* -else - __chooser -fi |