Skip to content

Instantly share code, notes, and snippets.

@suominen
Created March 5, 2023 20:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save suominen/dae03e0aff42373bfdd49430d954db99 to your computer and use it in GitHub Desktop.
Save suominen/dae03e0aff42373bfdd49430d954db99 to your computer and use it in GitHub Desktop.
List host key information from ~/.ssh/known_hosts
#!/bin/sh
# @(#)$KimmoSuominen: .cfg/home/bin/share/list-ssh-rsa-key-lengths,v 1.3 2023/03/05 20:24:14 kim Exp $
#
# List host key information from ~/.ssh/known_hosts
#
# 20230225 Kimmo Suominen
#
#
# Copyright (c) 2023 Kimmo Suominen
# All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# 2. Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer
# in the documentation and/or other materials provided with the
# distribution.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
# HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
set -eu
umask 077
PATH=/bin:/usr/bin
export PATH
PROG="${0##*/}"
die()
{
echo "${PROG}: ${@}" 1>&2
exit 1
}
msg()
{
echo "${PROG}: ${@}" 1>&2
}
usage()
{
cat <<EOF
Usage: ${PROG} [file ...]
List host key information from ~/.ssh/known_hosts or the given files.
EOF
}
# 34567890123456789012345678901234567890123456789012345678901234567890123456789
if [ ${#} -lt 1 ]
then
set -- "${HOME}/.ssh/known_hosts"
fi
WRKDIR="$(mktemp -d "${TMPDIR-/tmp}/${PROG}.XXXXXXXXXX")"
trap "rm -rf ${WRKDIR}" 0 1 2 15
KEY="${WRKDIR}/key.pub"
sed '/^#/ d; /^[ ]*$/ d;' "${@}" \
| while read line
do
echo "${line}" > "${KEY}"
ssh-keygen -lf "${KEY}"
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment