This plugin integrates the Keychain tool[1] in to the project. [1] [keychain](https://www.funtoo.org/Keychain)master
parent
576ada138f
commit
95a3b27680
2 changed files with 77 additions and 0 deletions
@ -0,0 +1,45 @@ |
|||||||
|
# keychain plugin |
||||||
|
|
||||||
|
This plugin starts automatically [`keychain`](https://www.funtoo.org/Keychain) |
||||||
|
to set up and load whichever credentials you want for both gpg and ssh |
||||||
|
connections. |
||||||
|
|
||||||
|
To enable it, add `keychain` to your plugins: |
||||||
|
|
||||||
|
```zsh |
||||||
|
plugins=(... keychain) |
||||||
|
``` |
||||||
|
|
||||||
|
**NOTE**: It is HIGHLY recommended to also enable the `gpg-agent` plugin. |
||||||
|
|
||||||
|
## Instructions |
||||||
|
|
||||||
|
**IMPORTANT: put these settings _before_ the line that sources oh-my-zsh** |
||||||
|
|
||||||
|
**To adjust the agents** that keychain manages, use the `agents` style as |
||||||
|
shown below. By default, only the `gpg` agent is managed. |
||||||
|
|
||||||
|
```zsh |
||||||
|
zstyle :omz:plugins:keychain agents gpg,ssh |
||||||
|
``` |
||||||
|
|
||||||
|
To **load multiple identities** use the `identities` style, For example: |
||||||
|
|
||||||
|
```zsh |
||||||
|
zstyle :omz:plugins:keychain identities id_ed25519 id_github 2C5879C2 |
||||||
|
``` |
||||||
|
|
||||||
|
**To pass additional options** to the `keychain` program, use the |
||||||
|
`options` style; for example: |
||||||
|
|
||||||
|
```zsh |
||||||
|
zstyle :omz:plugins:keychain options --quiet |
||||||
|
``` |
||||||
|
|
||||||
|
## Credits |
||||||
|
|
||||||
|
Based on code from the `ssh-agent` plugin. |
||||||
|
|
||||||
|
## References |
||||||
|
|
||||||
|
- [Keychain](https://www.funtoo.org/Keychain) |
||||||
@ -0,0 +1,32 @@ |
|||||||
|
function _start_agent() { |
||||||
|
local agents |
||||||
|
local -a identities |
||||||
|
local -a options |
||||||
|
local _keychain_env_sh |
||||||
|
local _keychain_env_sh_gpg |
||||||
|
|
||||||
|
# load agents to start. |
||||||
|
zstyle -s :omz:plugins:keychain agents agents |
||||||
|
|
||||||
|
# load identities to manage. |
||||||
|
zstyle -a :omz:plugins:keychain identities identities |
||||||
|
|
||||||
|
# load additional options |
||||||
|
zstyle -a :omz:plugins:keychain options options |
||||||
|
|
||||||
|
# start keychain... |
||||||
|
keychain ${^options:-} --agents ${agents:-gpg} ${^identities} |
||||||
|
|
||||||
|
# Get the filenames to store/lookup the environment from |
||||||
|
_keychain_env_sh="$HOME/.keychain/$SHORT_HOST-sh" |
||||||
|
_keychain_env_sh_gpg="$HOME/.keychain/$SHORT_HOST-sh-gpg" |
||||||
|
|
||||||
|
# Source environment settings. |
||||||
|
[ -f "$_keychain_env_sh" ] && . "$_keychain_env_sh" |
||||||
|
[ -f "$_keychain_env_sh_gpg" ] && . "$_keychain_env_sh_gpg" |
||||||
|
} |
||||||
|
|
||||||
|
_start_agent |
||||||
|
|
||||||
|
# tidy up after ourselves |
||||||
|
unfunction _start_agent |
||||||
Loading…
Reference in new issue