]> gitweb.fluxo.info Git - utils-ssh.git/commitdiff
Replace ssh-agent-loadkey by ssh-agent-loadkey-menu
authorSilvio Rhatto <rhatto@riseup.net>
Tue, 26 Mar 2019 00:41:29 +0000 (21:41 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Tue, 26 Mar 2019 00:41:29 +0000 (21:41 -0300)
ssh-agent-loadkey
ssh-agent-loadkey-menu [deleted file]

index 1207a05686a25961b244c307ad975a23fdb872c4..a3355610ecdd9c7ce096447939e5a475357fa9ac 100755 (executable)
@@ -1,31 +1,93 @@
 #!/bin/bash
 #
-# Load a key into the ssh-agent
+# Load a key from a menu.
 #
 
 # 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"
+if [ ! -d "$KEYS" ]; then
+  echo "$BASENAME: folder not found: $KEYS"
   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
+# 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
-  ssh-add $KEY
+  __chooser
 fi
diff --git a/ssh-agent-loadkey-menu b/ssh-agent-loadkey-menu
deleted file mode 100755 (executable)
index a335561..0000000
+++ /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