mirror of https://github.com/ohmyzsh/ohmyzsh.git
Merge 25ed84afb6
into 30e516a3aa
This commit is contained in:
commit
20a7726751
|
@ -14,3 +14,10 @@ plugins=(... ssh)
|
||||||
- `ssh_rmhkey`: remove host key from known hosts based on a host section name from `.ssh/config`.
|
- `ssh_rmhkey`: remove host key from known hosts based on a host section name from `.ssh/config`.
|
||||||
- `ssh_load_key`: load SSH key into agent.
|
- `ssh_load_key`: load SSH key into agent.
|
||||||
- `ssh_unload_key`: remove SSH key from agent.
|
- `ssh_unload_key`: remove SSH key from agent.
|
||||||
|
- `ssh_fingerprint` : calculate fingerprint of specifed key files. It has some options:
|
||||||
|
- `-md5` : Use MD5 fingerprint instead of SHA256
|
||||||
|
- `-n` : Don't colorize using ANSI
|
||||||
|
- `-q` : Don't print filename(s)
|
||||||
|
- If key files are not specified, defaults to `~/.ssh/authorized_keys`
|
||||||
|
- `ssh_fp` is an alias to this function
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ unset _ssh_configfile
|
||||||
############################################################
|
############################################################
|
||||||
# Remove host key from known hosts based on a host section
|
# Remove host key from known hosts based on a host section
|
||||||
# name from .ssh/config
|
# name from .ssh/config
|
||||||
function ssh_rmhkey {
|
function ssh_rmhkey() {
|
||||||
local ssh_configfile="$HOME/.ssh/config"
|
local ssh_configfile="$HOME/.ssh/config"
|
||||||
local ssh_host="$1"
|
local ssh_host="$1"
|
||||||
if [[ -z "$ssh_host" ]]; then return; fi
|
if [[ -z "$ssh_host" ]]; then return; fi
|
||||||
|
@ -42,7 +42,7 @@ function ssh_load_key() {
|
||||||
|
|
||||||
############################################################
|
############################################################
|
||||||
# Remove SSH key from agent
|
# Remove SSH key from agent
|
||||||
function ssh_unload_key {
|
function ssh_unload_key() {
|
||||||
local key="$1"
|
local key="$1"
|
||||||
if [[ -z "$key" ]]; then return; fi
|
if [[ -z "$key" ]]; then return; fi
|
||||||
local keyfile="$HOME/.ssh/$key"
|
local keyfile="$HOME/.ssh/$key"
|
||||||
|
@ -51,3 +51,36 @@ function ssh_unload_key {
|
||||||
ssh-add -d "$keyfile"
|
ssh-add -d "$keyfile"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
############################################################
|
||||||
|
# Calculate SSH key fingerprint
|
||||||
|
function ssh_fingerprint() {
|
||||||
|
local fptype
|
||||||
|
local quiet
|
||||||
|
local ansi
|
||||||
|
|
||||||
|
zmodload zsh/zutil
|
||||||
|
zparseopts -D -- md5=fptype q=quiet n=ansi
|
||||||
|
fptype="${fptype[*]}"
|
||||||
|
if [[ -z $fptype ]]; then
|
||||||
|
fptype="sha256"
|
||||||
|
else
|
||||||
|
fptype="${fptype:1}"
|
||||||
|
fi
|
||||||
|
if [[ -z ${ansi[*]} ]]; then
|
||||||
|
ansi=("\e[1;30m" "\e[0m")
|
||||||
|
else
|
||||||
|
ansi=("" "")
|
||||||
|
fi
|
||||||
|
|
||||||
|
local keyfiles=( "$@" )
|
||||||
|
if [[ ${#keyfiles[@]} == 0 ]]; then keyfiles=( "$HOME/.ssh/authorized_keys" ); fi
|
||||||
|
local f
|
||||||
|
for f in "${keyfiles[@]}"; do
|
||||||
|
if [[ $quiet != "-q" ]]; then printf "${ansi[1]}$f:${ansi[2]}\n"; fi
|
||||||
|
if ! ssh-keygen -l -E "$fptype" -f "$f"; then return $?; fi
|
||||||
|
done
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
alias ssh_fp='ssh_fingerprint'
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue