summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohann Visagie <wjv@FreeBSD.org>2001-09-11 12:06:29 +0000
committerJohann Visagie <wjv@FreeBSD.org>2001-09-11 12:06:29 +0000
commit6cae6e6901736a019142aa66b6c2176bfe6f70c4 (patch)
tree6ce0f9b7df8b4a59ac246d0247d6ea179aa20c37
parent* Drop deprecated USE_PERL5. (diff)
- Change the name of the file in which keychain stores the environment
settings of the running ssh-agent(1) process from ~/.ssh-agent to ~/.ssh-agent-`hostname -s`. This is to allow users with NFS-mounted home directories to use keychain on multiple machines simultaneously. - Bump PORTREVISION PR: 30506 Submitted by: Martti Kuparinen <martti.kuparinen@iki.fi>
Notes
Notes: svn path=/head/; revision=47658
-rw-r--r--security/keychain/Makefile1
-rw-r--r--security/keychain/files/patch-keychain76
2 files changed, 67 insertions, 10 deletions
diff --git a/security/keychain/Makefile b/security/keychain/Makefile
index 3ba217084fe5..28d39916f99d 100644
--- a/security/keychain/Makefile
+++ b/security/keychain/Makefile
@@ -7,6 +7,7 @@
PORTNAME= keychain
PORTVERSION= 1.2
+PORTREVISION= 1
CATEGORIES= security
MASTER_SITES= http://www.ibiblio.org/gentoo/distfiles/
diff --git a/security/keychain/files/patch-keychain b/security/keychain/files/patch-keychain
index dfba9cc120f0..77d5fee12b95 100644
--- a/security/keychain/files/patch-keychain
+++ b/security/keychain/files/patch-keychain
@@ -1,29 +1,85 @@
--- keychain.orig Mon Sep 10 06:42:47 2001
-+++ keychain Mon Sep 10 08:54:24 2001
-@@ -59,7 +59,7 @@
++++ keychain Tue Sep 11 13:55:58 2001
+@@ -9,6 +9,7 @@
+ trap "" INT
+ PATH="/sbin:/usr/sbin:${PATH}"; export PATH;
+ KEYCHAIN_KEYS=""
++SHORTHOSTNAME=`hostname -s`
+ for x in ${*}
+ do
+ # if it's not an --option, add it to our list of keys
+@@ -46,20 +47,20 @@
+
+ Keychain is an OpenSSH key manager, typically run from ~/.bash_profile. When
+ run, it will make sure ssh-agent is running; if not, it will start ssh-agent.
+- It will redirect ssh-agent's output to ~/.ssh-agent, so that cron jobs that
+- need to use ssh-agent keys can simply source this file and make the necessary
+- passwordless ssh connections. In addition, when keychain runs, it will check
+- with ssh-agent and make sure that the ssh RSA/DSA keys that you specified on
+- the keychain command line have actually been added to ssh-agent. If not, you
+- are prompted for the appropriate passphrases so that they can be added by
+- keychain.
++ It will redirect ssh-agent's output to ~/.ssh-agent-HOSTNAME, so that cron
++ jobs that need to use ssh-agent keys can simply source this file and make the
++ necessary passwordless ssh connections. In addition, when keychain runs, it
++ will check with ssh-agent and make sure that the ssh RSA/DSA keys that you
++ specified on the keychain command line have actually been added to ssh-agent.
++ If not, you are prompted for the appropriate passphrases so that they can be
++ added by keychain.
+
+ Typically, one uses keychain by adding the following to the top of their
+ ~/.bash_profile (or ~/.zshrc, in case of zsh):
EOHELP
echo -e " ${CYAN}keychain ~/.ssh/id_rsa ~/.ssh/id_dsa"
-echo -e " source ~/.ssh-agent > /dev/null${OFF}"
-+echo -e " . ~/.ssh-agent > /dev/null${OFF}"
++echo -e " . ~/.ssh-agent-HOSTNAME > /dev/null${OFF}"
echo -e " # the > /dev/null eliminates the redundant agent PID output"
echo
cat <<EOHELP
-@@ -109,7 +109,7 @@
- chmod 0600 ~/.ssh-agent
+@@ -86,8 +87,9 @@
+ echo
+ cat <<EOHELP
+ This option tells keychain do everything it normally does (ensure ssh-agent is
+- running, set up the ~/.ssh-agent file) except that it will not prompt you to
+- add any of the keys you specified if they haven't yet been added to ssh-agent.
++ running, set up the ~/.ssh-agent-HOSTNAME file) except that it will not prompt
++ you to add any of the keys you specified if they haven't yet been added to
++ ssh-agent.
+
+ EOHELP
+ echo -e " ${GREEN}--stop${OFF}"
+@@ -102,14 +104,14 @@
+ fi
+
+
+-if [ ! -f ~/.ssh-agent ]
++if [ ! -f ~/.ssh-agent-${SHORTHOSTNAME} ]
+ then
+- echo -e " ${GREEN}*${OFF} Initializing ~/.ssh-agent file..."
+- touch ~/.ssh-agent || ( echo "$0: Cannot create ~/.ssh-agent, exiting." 1>&2 && exit 1 )
+- chmod 0600 ~/.ssh-agent
++ echo -e " ${GREEN}*${OFF} Initializing ~/.ssh-agent-HOSTNAME file..."
++ touch ~/.ssh-agent-${SHORTHOSTNAME} || ( echo "$0: Cannot create ~/.ssh-agent-HOSTNAME, exiting." 1>&2 && exit 1 )
++ chmod 0600 ~/.ssh-agent-${SHORTHOSTNAME}
SSH_AGENT_PID="NULL"
else
- source ~/.ssh-agent > /dev/null
-+ . ~/.ssh-agent > /dev/null
++ . ~/.ssh-agent-${SHORTHOSTNAME} > /dev/null
fi
match="no"
-@@ -130,7 +130,7 @@
- chmod 0600 ~/.ssh-agent
+@@ -127,10 +129,10 @@
+
+ if [ "$match" = "no" ]
+ then
+- chmod 0600 ~/.ssh-agent
++ chmod 0600 ~/.ssh-agent-${SHORTHOSTNAME}
echo -e " ${GREEN}*${OFF} starting new ssh-agent"
- nohup ssh-agent > ~/.ssh-agent
+- nohup ssh-agent > ~/.ssh-agent
- source ~/.ssh-agent > /dev/null
-+ . ~/.ssh-agent > /dev/null
++ nohup ssh-agent > ~/.ssh-agent-${SHORTHOSTNAME}
++ . ~/.ssh-agent-${SHORTHOSTNAME} > /dev/null
fi
if [ -n "`echo $* | grep '\-\-clear'`" ]