diff options
Diffstat (limited to 'ssh-agent-eval')
-rwxr-xr-x | ssh-agent-eval | 74 |
1 files changed, 39 insertions, 35 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 |