]> gitweb.fluxo.info Git - utils-ssh.git/commitdiff
Fix: rename ssh-agent-loadkeys as ssh-agent-keychain; update ssh-agent-eval master
authorSilvio Rhatto <rhatto@riseup.net>
Fri, 9 Aug 2024 13:13:00 +0000 (10:13 -0300)
committerSilvio Rhatto <rhatto@riseup.net>
Fri, 9 Aug 2024 13:13:00 +0000 (10:13 -0300)
ssh-agent-eval
ssh-agent-keychain [moved from ssh-agent-loadkeys with 67% similarity]

index 82d6fb1973c17aa940167ef9ae2963b39245064f..36f51ca70822f92b896454b136b3c382abcdb7e4 100755 (executable)
@@ -1,49 +1,53 @@
-#!/bin/bash
+#!/bin/sh
 #
 # Initializes the ssh-agent
 #
 
-# SSH Agent
-#SSHAGENT=/usr/bin/ssh-agent
-#SSHAGENTARGS="-s"
-#
-#function ssh_agent_eval_run {
-#  eval `$SSHAGENT $SSHAGENTARGS` &> /dev/null
+# Parameters
+SSH_AGENT=/usr/bin/ssh-agent
+SSH_AGENT_ARGS="-s"
+SSH_ENV="$HOME/.ssh/environment"
+
+# Start agent, old implementation
+#ssh_agent_eval_run() {
+#  eval `$SSH_AGENT $SSH_AGENT_ARGS` &> /dev/null
 #  trap "ps $SSH_AGENT_PID &> /dev/null && kill $SSH_AGENT_PID" 0
 #}
-#
-#if [ "$1" == "-f" ]; then
-#  echo "Starting a new ssh-agent..."
-#  ssh_agent_eval_run
-#elif [ -z "$SSH_AUTH_SOCK" -a -x "$SSHAGENT" ]; then
-#  ssh_agent_eval_run
-#fi
 
-# See http://mah.everybody.org/docs/ssh
+# Start agent, new implementation
+# Check http://mah.everybody.org/docs/ssh
+start_agent() {
+  echo "" > "${SSH_ENV}"
+  chmod 600 "${SSH_ENV}"
 
-SSH_ENV="$HOME/.ssh/environment"
+  echo -n "Initialising new SSH agent..."
+  ${SSH_AGENT} ${SSH_AGENT_ARGS} | sed 's/^echo/#echo/' >> "${SSH_ENV}"
+  echo succeeded
 
-function start_agent {
-     echo "Initialising new SSH agent..."
-     /usr/bin/ssh-agent | sed 's/^echo/#echo/' > "${SSH_ENV}"
-     echo succeeded
-     chmod 600 "${SSH_ENV}"
-     . "${SSH_ENV}" > /dev/null
-     /usr/bin/ssh-add;
-
-     if [ -x "/usr/bin/monkeysphere" ]; then
-       /usr/bin/monkeysphere subkey-to-ssh-agent
-     fi
+  . "${SSH_ENV}" > /dev/null
+  /usr/bin/ssh-add;
+
+  if [ -x "/usr/bin/monkeysphere" ]; then
+    /usr/bin/monkeysphere subkey-to-ssh-agent
+  fi
 }
 
-# Source SSH settings, if applicable
+# Old implementation
+#if [ "$1" == "-f" ]; then
+#  echo "Starting a new ssh-agent..."
+#  ssh_agent_eval_run
+#elif [ -z "$SSH_AUTH_SOCK" -a -x "$SSH_AGENT" ]; then
+#  ssh_agent_eval_run
+#fi
 
+# New implementation
+# Check http://mah.everybody.org/docs/ssh
 if [ -f "${SSH_ENV}" ]; then
-     . "${SSH_ENV}" > /dev/null
-     #ps ${SSH_AGENT_PID} doesn't work under cywgin
-     ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
-         start_agent;
-     }
+  . "${SSH_ENV}" > /dev/null
+  #ps ${SSH_AGENT_PID} doesn't work under cywgin
+  ps -ef | grep ${SSH_AGENT_PID} | grep ssh-agent$ > /dev/null || {
+    start_agent;
+  }
 else
-     start_agent;
-fi 
+  start_agent;
+fi
similarity index 67%
rename from ssh-agent-loadkeys
rename to ssh-agent-keychain
index 81dfe1be7a38398d35bc4b686f01261ff7ba904f..00832835218cb0cfbb9f05c5cffe2713f4332bc0 100755 (executable)
@@ -1,19 +1,24 @@
-#!/bin/bash
+#!/bin/sh
 #
-# Load keys into the ssh-agent
-# Uses monkeysphere and keychain
+# Manage ssh-agent with Keychain:
+#
+# * https://www.funtoo.org/Funtoo:Keychain
+# * https://wiki.archlinux.org/title/SSH_keys#Keychain
 #
 
 # Check for keychain
 if [ -x '/usr/bin/keychain' ]; then
   mkdir -p $HOME/.keychain
 
+  if [ -z "$FQDN" ]; then
+    FQDN="`cat /etc/hostname`"
+  fi
+
   # Setup keychain
   /usr/bin/keychain -q --noask
 
-  # Load ssh-agent info
-  if [ -e "$HOME/.keychain/$HOSTNAME-sh" ]; then
-    . $HOME/.keychain/$HOSTNAME-sh
+  if [ -e "$HOME/.keychain/$FQDN-sh" ]; then
+    . $HOME/.keychain/$FQDN-sh
   fi
 
   # Load gpg-agent info
@@ -33,16 +38,16 @@ if [ -x '/usr/bin/keychain' ]; then
   fi
 
   # Check for RSA key
-  if [ -e "$HOME/.ssh/id_rsa" ]; then
-    /usr/bin/keychain -q $HOME/.ssh/id_rsa
-  fi
+  #if [ -e "$HOME/.ssh/id_rsa" ]; then
+  #  /usr/bin/keychain -q $HOME/.ssh/id_rsa
+  #fi
 
   # Check for ED25519 key
-  if [ -e "$HOME/.ssh/id_ed25519" ]; then
-    /usr/bin/keychain -q $HOME/.ssh/id_ed25519
-  fi
+  #if [ -e "$HOME/.ssh/id_ed25519" ]; then
+  #  /usr/bin/keychain -q $HOME/.ssh/id_ed25519
+  #fi
 
-  # Autoload remaining keys
+  # Autoload keys
   if [ -d "$HOME/.ssh/autoload" ]; then
     for key in `ls $HOME/.ssh/autoload`; do
       /usr/bin/keychain -q $HOME/.ssh/autoload/$key