chezmoi init
This commit is contained in:
commit
530d6d7195
1176 changed files with 111325 additions and 0 deletions
16
dot_oh-my-zsh/plugins/ssh/README.md
Normal file
16
dot_oh-my-zsh/plugins/ssh/README.md
Normal file
|
@ -0,0 +1,16 @@
|
|||
# ssh plugin
|
||||
|
||||
This plugin provides host completion based off of your `~/.ssh/config` file, and adds
|
||||
some utility functions to work with SSH keys.
|
||||
|
||||
To use it, add `ssh` to the plugins array in your zshrc file:
|
||||
|
||||
```zsh
|
||||
plugins=(... ssh)
|
||||
```
|
||||
|
||||
## Functions
|
||||
|
||||
- `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_unload_key`: remove SSH key from agent.
|
53
dot_oh-my-zsh/plugins/ssh/ssh.plugin.zsh
Normal file
53
dot_oh-my-zsh/plugins/ssh/ssh.plugin.zsh
Normal file
|
@ -0,0 +1,53 @@
|
|||
############################################################
|
||||
# Take all host sections in .ssh/config and offer them for
|
||||
# completion as hosts (e.g. for ssh, rsync, scp and the like)
|
||||
# Filter out wildcard host sections.
|
||||
_ssh_configfile="$HOME/.ssh/config"
|
||||
if [[ -f "$_ssh_configfile" ]]; then
|
||||
_ssh_hosts=($(
|
||||
egrep '^Host.*' "$_ssh_configfile" |\
|
||||
awk '{for (i=2; i<=NF; i++) print $i}' |\
|
||||
sort |\
|
||||
uniq |\
|
||||
grep -v '^*' |\
|
||||
sed -e 's/\.*\*$//'
|
||||
))
|
||||
zstyle ':completion:*:hosts' hosts $_ssh_hosts
|
||||
unset _ssh_hosts
|
||||
fi
|
||||
unset _ssh_configfile
|
||||
|
||||
############################################################
|
||||
# Remove host key from known hosts based on a host section
|
||||
# name from .ssh/config
|
||||
function ssh_rmhkey {
|
||||
local ssh_configfile="$HOME/.ssh/config"
|
||||
local ssh_host="$1"
|
||||
if [[ -z "$ssh_host" ]]; then return; fi
|
||||
ssh-keygen -R $(grep -A10 "$ssh_host" "$ssh_configfile" | grep -i HostName | head -n 1 | awk '{print $2}')
|
||||
}
|
||||
compctl -k hosts ssh_rmhkey
|
||||
|
||||
############################################################
|
||||
# Load SSH key into agent
|
||||
function ssh_load_key() {
|
||||
local key="$1"
|
||||
if [[ -z "$key" ]]; then return; fi
|
||||
local keyfile="$HOME/.ssh/$key"
|
||||
local keysig=$(ssh-keygen -l -f "$keyfile")
|
||||
if ( ! ssh-add -l | grep -q "$keysig" ); then
|
||||
ssh-add "$keyfile"
|
||||
fi
|
||||
}
|
||||
|
||||
############################################################
|
||||
# Remove SSH key from agent
|
||||
function ssh_unload_key {
|
||||
local key="$1"
|
||||
if [[ -z "$key" ]]; then return; fi
|
||||
local keyfile="$HOME/.ssh/$key"
|
||||
local keysig=$(ssh-keygen -l -f "$keyfile")
|
||||
if ( ssh-add -l | grep -q "$keysig" ); then
|
||||
ssh-add -d "$keyfile"
|
||||
fi
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue