Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
O
oh-my-zsh
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
github
oh-my-zsh
Commits
35b879a1
Commit
35b879a1
authored
Jun 05, 2011
by
gwjo
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Add support for agent forwarding
parent
e8bd400b
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
40 additions
and
12 deletions
+40
-12
ssh-agent.plugin.zsh
plugins/ssh-agent/ssh-agent.plugin.zsh
+40
-12
No files found.
plugins/ssh-agent/ssh-agent.plugin.zsh
View file @
35b879a1
# 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
#
#
# 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
}
/usr/bin/env ssh-agent |
sed
's/^echo/#echo/'
>
${
_plugin__ssh_env
}
.
${
SSH_ENV
}
>
/dev/null
chmod
600
${
_plugin__ssh_env
}
.
${
_plugin__ssh_env
}
>
/dev/null
/usr/bin/ssh-add
;
/usr/bin/ssh-add
;
}
}
# 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"
&&
-z
$SSH_AGENT_PID
&&
-n
"
$SSH_AUTH_SOCK
"
]]
;
then
# No PID but a AUTH_SOCK means agent forwarding is enabled
# Add a nifty symlink for screen/tmux
[[
-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