mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2026-05-29 04:53:17 +02:00
YubiKey Plugin
This commit is contained in:
parent
6718bfa0ff
commit
c69e4fb96a
2 changed files with 56 additions and 0 deletions
11
plugins/yubikey/README.md
Normal file
11
plugins/yubikey/README.md
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
# YubiKey Plugin
|
||||||
|
|
||||||
|
YubiKey plugin -- Provides aliases to help use YubiKey tokens comfortably
|
||||||
|
|
||||||
|
## Usage
|
||||||
|
|
||||||
|
This plugin will first try to detect location of the 'opensc-pkcs11.so' library, unless already specified in the $OPENSC env var.
|
||||||
|
|
||||||
|
Afterwards, it will try to detect if a 'shared ssh-agent' is already running, through a file in /run (preferred, but must be pre-created with the proper permissions), or in /tmp (fallback).
|
||||||
|
|
||||||
|
Then it will define several aliases.
|
||||||
45
plugins/yubikey/yubikey.plugin.zsh
Normal file
45
plugins/yubikey/yubikey.plugin.zsh
Normal file
|
|
@ -0,0 +1,45 @@
|
||||||
|
|
||||||
|
|
||||||
|
local _libname='opensc-pkcs11.so'
|
||||||
|
local _sshfiledir="/run/user/$UID"
|
||||||
|
local _sshfile='ssh_agent'
|
||||||
|
local _sshpath=''
|
||||||
|
|
||||||
|
if [[ -z $OPENSC ]]; then
|
||||||
|
for f in $(locate "/${_libname}"); do
|
||||||
|
[[ -L $f ]] && continue # Is a sublink
|
||||||
|
OPENSC="$f"
|
||||||
|
break
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
export OPENSC
|
||||||
|
|
||||||
|
if [[ -w $_sshfiledir ]]; then
|
||||||
|
_sshpath="$_sshfiledir/$_sshfile"
|
||||||
|
else
|
||||||
|
_sshpath="/tmp/$_sshfile"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
|
alias yubi-init="pkill ssh-agent; pkill gpg-agent; ssh-agent -s > $_sshpath; source $_sshpath"
|
||||||
|
alias yubi-insert="ssh-add -s $OPENSC"
|
||||||
|
alias yubi-eject="ssh-add -d $OPENSC"
|
||||||
|
|
||||||
|
if [[ -r $_sshpath ]]; then
|
||||||
|
echo "Common SSH Agent detected."
|
||||||
|
source $_sshpath
|
||||||
|
else
|
||||||
|
echo -n "Common SSH Agent not detected."
|
||||||
|
case "${(U)YUBI_SSHAGENT_AUTOINIT}" in
|
||||||
|
1|Y|YES)
|
||||||
|
echo -n " Auto-initializing... "
|
||||||
|
yubi-init
|
||||||
|
echo "done."
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo " Autoinit not enabled. Use 'yubi-init' to manually init."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
|
||||||
|
# vim: set ft=zsh ts=4 sts=4 et ai :
|
||||||
Loading…
Add table
Add a link
Reference in a new issue