Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
adam.huang
Oh My Zsh
Commits
bce9c3bb
Commit
bce9c3bb
authored
Jul 17, 2011
by
Robby Russell
Browse files
Merge pull request #404 from gwjo/ssh-agent
ssh-agent improvements
parents
c8039247
40b7f209
Changes
1
Hide whitespace changes
Inline
Side-by-side
plugins/ssh-agent/ssh-agent.plugin.zsh
View file @
bce9c3bb
# Based on code from Joseph M. Reagle
#
# http://www.cygwin.com/ml/cygwin/2001-06/msg00537.html
# INSTRUCTIONS
#
# To enabled agent forwarding support add the following to
# your .zshrc file:
#
# zstyle :omz:plugins:ssh-agent agent-forwarding on
#
# To load multiple identies use the identities style, For
# example:
#
# zstyle :omz:plugins:ssh-agent id_rsa id_rsa2 id_github
#
#
# CREDITS
#
# Based on code from Joseph M. Reagle
# http://www.cygwin.com/ml/cygwin/2001-06/msg00537.html
#
# Agent forwarding support based on ideas from
# Florent Thoumie and Jonas Pfenniger
#
local
SSH_ENV
=
$HOME
/.ssh/environment-
$HOST
local
_plugin__ssh_env
=
$HOME
/.ssh/environment-
$HOST
local
_plugin__forwarding
function
start_agent
{
function
_plugin__start_agent
()
/usr/bin/env ssh-agent |
sed
's/^echo/#echo/'
>
${
SSH_ENV
}
{
chmod
600
${
SSH_ENV
}
local
-a
identities
.
${
SSH_ENV
}
>
/dev/null
/usr/bin/ssh-add
;
# start ssh-agent and setup environment
/usr/bin/env ssh-agent |
sed
's/^echo/#echo/'
>
${
_plugin__ssh_env
}
chmod
600
${
_plugin__ssh_env
}
.
${
_plugin__ssh_env
}
>
/dev/null
# load identies
zstyle
-a
:omz:plugins:ssh-agent identities identities
echo
starting...
/usr/bin/ssh-add
$HOME
/.ssh/
${
^identities
}
}
}
# Source SSH settings, if applicable
# test if agent-forwarding is enabled
zstyle
-b
:omz:plugins:ssh-agent agent-forwarding _plugin__forwarding
if
[[
${
_plugin__forwarding
}
==
"yes"
&&
-n
"
$SSH_AUTH_SOCK
"
]]
;
then
# Add a nifty symlink for screen/tmux if agent forwarding
[[
-L
$SSH_AUTH_SOCK
]]
||
ln
-sf
"
$SSH_AUTH_SOCK
"
/tmp/ssh-agent-
$USER
-screen
if
[
-f
"
${
SSH_ENV
}
"
]
;
then
elif
[
-f
"
${
_plugin__ssh_env
}
"
]
;
then
.
${
SSH_ENV
}
>
/dev/null
# Source SSH settings, if applicable
.
${
_plugin__ssh_env
}
>
/dev/null
ps
-ef
|
grep
${
SSH_AGENT_PID
}
|
grep
ssh-agent
$
>
/dev/null
||
{
ps
-ef
|
grep
${
SSH_AGENT_PID
}
|
grep
ssh-agent
$
>
/dev/null
||
{
start_agent
;
_plugin__
start_agent
;
}
}
else
else
start_agent
;
_plugin__
start_agent
;
fi
fi
# tidy up after ourselves
unfunction _plugin__start_agent
unset
_plugin__forwarding
unset
_plugin__ssh_env
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment