Skip to content

Instantly share code, notes, and snippets.

@njuaplusplus
Forked from bradland/ssh-known-hosts-mgmt.sh
Created September 23, 2015 05:41
Show Gist options
  • Save njuaplusplus/a0254e6589fd159edef1 to your computer and use it in GitHub Desktop.
Save njuaplusplus/a0254e6589fd159edef1 to your computer and use it in GitHub Desktop.
SSH known_hosts tools
# This is a short collection of tools that are useful for managing your
# known_hosts file. In this case, I'm using the '-f' flag to specify the
# global known_hosts file because I'll be adding many deploy users on this
# system. Simply omit the -f flag to operate on ~/.ssh/known_hosts
# Add entry for host
ssh-keyscan -H github.com > /etc/ssh/ssh_known_hosts
# Scan known hosts
ssh-keygen -f /etc/ssh/ssh_known_hosts -H -F github.com
# Scan known hosts and grep (return code is 0 if matched; 1 if not matched)
ssh-keygen -f /etc/ssh/ssh_known_hosts -H -F github.com | grep 'github.com'
# Count matches for host
ssh-keygen -f /etc/ssh/ssh_known_hosts -H -F github.com | wc -l
# Remove entry for host
ssh-keygen -f /etc/ssh/ssh_known_hosts -R github.com
rm /etc/ssh/ssh_known_hosts.old
# Wipe all known_hosts files
if [ -e ~/.ssh/known_hosts ]; then rm ~/.ssh/known_hosts; fi
if [ -e ~/.ssh/known_hosts ]; then rm ~/.ssh/known_hosts; fi
if [ -e ~/.ssh/known_hosts.old ]; then rm ~/.ssh/known_hosts.old; fi
if [ -e /etc/ssh/ssh_known_hosts ]; then rm /etc/ssh/ssh_known_hosts; fi
if [ -e /etc/ssh/ssh_known_hosts.old ]; then rm /etc/ssh/ssh_known_hosts.old; fi
# Show last return code; useful for testing the grep example
echo $?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment