* ssh-agent: lock this script with a mkdir style mutex This script is a kind of singleton pattern and is not reentrant. If several shells are oppened in a fast sequence, then several independent ssh-agents would be created, which is not acceptable. A mutex is required. Signed-off-by: Nuno Goncalves <nunojpg@gmail.com> * ssh-agent: only start agent if .ssh dir exists To use the same profile system-wide, it might happen that the .ssh directory does not exist (typically $HOME/.ssh/). This would trigger a error. Creating the directory would be a option, but it usually will not make sense to do so because it means the user doesn't have ssh keys or config. Signed-off-by: Nuno Goncalves <nunojpg@gmail.com> * ssh-agent: adds lazy option to disable key loading on start Option is documented on updated README.md Signed-off-by: Nuno Goncalves <nunojpg@gmail.com> * ssh-agent: simplify agent-forwarding checking Signed-off-by: Nuno Goncalves <nunojpg@gmail.com> Co-authored-by: Robby Russell <robby@planetargon.com>
1.8 KiB
ssh-agent plugin
This plugin starts automatically ssh-agent
to set up and load whichever
credentials you want for ssh connections.
To enable it, add ssh-agent
to your plugins:
plugins=(... ssh-agent)
Settings
IMPORTANT: put these settings before the line that sources oh-my-zsh
To enable agent forwarding support add the following to your zshrc file:
zstyle :omz:plugins:ssh-agent agent-forwarding on
To NOT load any identities on start use the lazy
style.
This is particularly usefull when combined with the AddKeysToAgent
(available from OpenSSH 7.2), since it allows to enter the password only
on first use.
zstyle :omz:plugins:ssh-agent lazy yes
To load multiple identities use the identities
style. This have no
effect if lazy
is enabled.
zstyle :omz:plugins:ssh-agent identities id_rsa id_rsa2 id_github
To set the maximum lifetime of the identities, use the lifetime
style.
The lifetime may be specified in seconds or as described in sshd_config(5)
(see TIME FORMATS). If left unspecified, the default lifetime is forever.
zstyle :omz:plugins:ssh-agent lifetime 4h
To pass arguments to the ssh-add
command that adds the identities on startup,
use the ssh-add-args
setting. You can pass multiple arguments separated by spaces:
zstyle :omz:plugins:ssh-agent ssh-add-args -K -c -a /run/user/1000/ssh-auth
These will then be passed the the ssh-add
call as if written directly. The example
above will turn into:
ssh-add -K -c -a /run/user/1000/ssh-auth <identities>
For valid ssh-add
arguments run ssh-add --help
or man ssh-add
.
Credits
Based on code from Joseph M. Reagle: https://www.cygwin.com/ml/cygwin/2001-06/msg00537.html
Agent-forwarding support based on ideas from Florent Thoumie and Jonas Pfenniger