aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xssh-agent-eval74
-rwxr-xr-xssh-agent-keychain (renamed from ssh-agent-loadkeys)31
2 files changed, 57 insertions, 48 deletions
diff --git a/ssh-agent-eval b/ssh-agent-eval
index 82d6fb1..36f51ca 100755
--- a/ssh-agent-eval
+++ b/ssh-agent-eval
@@ -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
diff --git a/ssh-agent-loadkeys b/ssh-agent-keychain
index 81dfe1b..0083283 100755
--- a/ssh-agent-loadkeys
+++ b/ssh-agent-keychain
@@ -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