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
60b89cd2
Unverified
Commit
60b89cd2
authored
Nov 17, 2021
by
Marc Cornellà
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat(ssh-agent): add `quiet` option to silence plugin (#9659)
Closes #9659 Co-authored-by:
Jeff Warner
<
jeff@develops.software
>
parent
fb12e413
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
38 additions
and
30 deletions
+38
-30
README.md
plugins/ssh-agent/README.md
+33
-23
ssh-agent.plugin.zsh
plugins/ssh-agent/ssh-agent.plugin.zsh
+5
-7
No files found.
plugins/ssh-agent/README.md
View file @
60b89cd2
...
...
@@ -13,28 +13,24 @@ plugins=(... ssh-agent)
**IMPORTANT: put these settings _before_ the line that sources oh-my-zsh**
### `agent-forwarding`
To enable
**agent forwarding support**
add the following to your zshrc file:
```
zsh
zstyle :omz:plugins:ssh-agent agent-forwarding
on
zstyle :omz:plugins:ssh-agent agent-forwarding
yes
```
----
### `helper`
To
**NOT load any identities on start**
use the
`lazy`
setting. This is particularly
useful when combined with the
`AddKeysToAgent`
setting (available since OpenSSH 7.2),
since it allows to enter the password only on first use. _NOTE: you can know your
OpenSSH version with
`ssh -V`
._
To set an
**external helper**
to ask for the passwords and possibly store
them in the system keychain use the
`helper`
style. For example:
```
zsh
zstyle :omz:plugins:ssh-agent
lazy
ye
s
zstyle :omz:plugins:ssh-agent
helper ksshaskpas
s
```
You can enable
`AddKeysToAgent`
by passing
`-o AddKeysToAgent=yes`
to the
`ssh`
command,
or by adding
`AddKeysToAgent yes`
to your
`~/.ssh/config`
file
[
1
]
.
See the
[
OpenSSH 7.2 Release Notes
](
http://www.openssh.com/txt/release-7.2
)
.
----
### `identities`
To
**load multiple identities**
use the
`identities`
style (
**
this has no effect
if the
`lazy`
setting is enabled
**
). For example:
...
...
@@ -52,7 +48,22 @@ zstyle :omz:plugins:ssh-agent identities ~/.config/ssh/id_rsa ~/.config/ssh/id_r
zstyle :omz:plugins:ssh-agent identities ~/.config/ssh/
{
id_rsa,id_rsa2,id_github
}
```
----
### `lazy`
To
**NOT load any identities on start**
use the
`lazy`
setting. This is particularly
useful when combined with the
`AddKeysToAgent`
setting (available since OpenSSH 7.2),
since it allows to enter the password only on first use. _NOTE: you can know your
OpenSSH version with
`ssh -V`
._
```
zsh
zstyle :omz:plugins:ssh-agent lazy
yes
```
You can enable
`AddKeysToAgent`
by passing
`-o AddKeysToAgent=yes`
to the
`ssh`
command,
or by adding
`AddKeysToAgent yes`
to your
`~/.ssh/config`
file
[
1
]
.
See the
[
OpenSSH 7.2 Release Notes
](
http://www.openssh.com/txt/release-7.2
)
.
### `lifetime`
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)
...
...
@@ -62,7 +73,15 @@ The lifetime may be specified in seconds or as described in sshd_config(5)
zstyle :omz:plugins:ssh-agent lifetime 4h
```
----
### `quiet`
To silence the plugin, use the following setting:
```
zsh
zstyle :omz:plugins:ssh-agent quiet
yes
```
### `ssh-add-args`
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:
...
...
@@ -80,15 +99,6 @@ ssh-add -K -c -a /run/user/1000/ssh-auth <identities>
For valid
`ssh-add`
arguments run
`ssh-add --help`
or
`man ssh-add`
.
----
To set an
**external helper**
to ask for the passwords and possibly store
them in the system keychain use the
`helper`
style. For example:
```
zsh
zstyle :omz:plugins:ssh-agent helper ksshaskpass
```
## Credits
Based on code from Joseph M. Reagle: https://www.cygwin.com/ml/cygwin/2001-06/msg00537.html
...
...
plugins/ssh-agent/ssh-agent.plugin.zsh
View file @
60b89cd2
...
...
@@ -18,7 +18,7 @@ function _start_agent() {
zstyle
-s
:omz:plugins:ssh-agent lifetime lifetime
# start ssh-agent and setup environment
echo
Starting ssh-agent...
zstyle
-t
:omz:plugins:ssh-agent quiet
||
echo
>
&2
"Starting ssh-agent ..."
ssh-agent
-s
${
lifetime
:+-t
}
${
lifetime
}
|
sed
'/^echo/d'
>!
"
$ssh_env_cache
"
chmod
600
"
$ssh_env_cache
"
.
"
$ssh_env_cache
"
>
/dev/null
...
...
@@ -78,7 +78,7 @@ function _add_identities() {
if
[[
-n
"
$helper
"
]]
;
then
if
[[
-z
"
${
commands
[
$helper
]
}
"
]]
;
then
echo
"ssh-agent: the helper '
$helper
' has not been found."
echo
>
&2
"ssh-agent: the helper '
$helper
' has not been found."
else
SSH_ASKPASS
=
"
$helper
"
ssh-add
"
${
args
[@]
}
"
${
^not_loaded
}
< /dev/null
return
$?
...
...
@@ -88,11 +88,9 @@ function _add_identities() {
ssh-add
"
${
args
[@]
}
"
${
^not_loaded
}
}
# test if agent-forwarding is enabled
zstyle
-b
:omz:plugins:ssh-agent agent-forwarding agent_forwarding
# Add a nifty symlink for screen/tmux if agent forwarding
if
[[
$agent_forwarding
=
"yes"
&&
-n
"
$SSH_AUTH_SOCK
"
&&
!
-L
"
$SSH_AUTH_SOCK
"
]]
;
then
# Add a nifty symlink for screen/tmux if agent forwarding is enabled
if
zstyle
-t
:omz:plugins:ssh-agent agent-forwarding
\
&&
[[
-n
"
$SSH_AUTH_SOCK
"
&&
!
-L
"
$SSH_AUTH_SOCK
"
]]
;
then
ln
-sf
"
$SSH_AUTH_SOCK
"
/tmp/ssh-agent-
$USERNAME
-screen
else
_start_agent
...
...
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