From 9eacb621ccc5878aa37cc42a71a7c9a9dc5fac79 Mon Sep 17 00:00:00 2001 From: John Lancaster <32917998+jsl12@users.noreply.github.com> Date: Sat, 3 Jan 2026 23:38:43 -0600 Subject: [PATCH] ssh-server-check script --- scripts/ssh-server-check.sh | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100755 scripts/ssh-server-check.sh diff --git a/scripts/ssh-server-check.sh b/scripts/ssh-server-check.sh new file mode 100755 index 0000000..3beb684 --- /dev/null +++ b/scripts/ssh-server-check.sh @@ -0,0 +1,31 @@ +#!/usr/bin/env sh + +ssh_config_val() { + local field="$1" + local val + + if [[ -z "$field" ]]; then + echo "usage: ssh_config_val " >&2 + return 2 + fi + + echo $(sshd -T | grep -i "^$field " | head -1 | awk '{print $2}') +} + +check_ssh_files() { + printf "%-6s %-20s %-6s %s\n" "STATUS" "KEY" "PERMS" "PATH" + for key in hostkey hostcertificate trustedusercakeys; do + path=$(ssh_config_val "$key") + if [[ -z "$path" ]]; then + printf "%-7s %-20s %-6s %s\n" "⚠️" "$key" "-" "(not configured)" + continue + fi + + if [[ -e "$path" ]]; then + perms=$(stat -c '%a' "$path") + printf "%-7s %-20s %-6s %s\n" "✅" "$key" "$perms" "$path" + else + printf "%-7s %-20s %-6s %s\n" "❌" "$key" "-" "$path (missing)" + fi + done +}