From e04d6f6056e5bbb6502725be5268ccfe7a3e8591 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9s=20Felipe=20Marulanda=20Hern=C3=A1ndez?= Date: Tue, 25 Feb 2025 17:58:37 +0000 Subject: [PATCH] Update ssh_key_checks --- ssh_key_checks | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/ssh_key_checks b/ssh_key_checks index 172bf4d..e4eaae4 100644 --- a/ssh_key_checks +++ b/ssh_key_checks @@ -6,7 +6,7 @@ echo "------------------------------------------------------------" printf "%-20s %-50s %-10s %-15s %-10s\n" "Usuario" "Ruta del archivo" "Permisos" "SSH Habilitado" "Llaves" echo "------------------------------------------------------------" -# Buscar archivos que puedan contener claves SSH (no solo authorized_keys) +# Buscar archivos que puedan contener claves SSH KEY_FILES=$(find / -type f \( -name "authorized_keys" -o -name "*.pub" -o -name "*keys*" -o -name "*id_rsa*" -o -name "*id_ed25519*" \) 2>/dev/null) # Variables para almacenar usuarios con llaves @@ -34,7 +34,7 @@ while IFS=: read -r username _ _ _ _ homedir _; do if [[ $num_llaves -gt 0 ]]; then user_has_keys=1 - user_keys_paths+=("$key_file") + user_keys_paths+=("$key_file;$permisos;$num_llaves") fi fi done @@ -70,7 +70,16 @@ while IFS=: read -r username _ _ _ _ homedir _; do # Mostrar en pantalla si tiene llaves vรกlidas if [[ ${#user_keys_paths[@]} -gt 0 ]]; then - printf "%-20s %-50s %-10s %-15s %-10s\n" "$username" "${user_keys_paths[*]}" "$permisos" "$ssh_habilitado" "$num_llaves" + first_entry=1 + for key_entry in "${user_keys_paths[@]}"; do + IFS=";" read -r key_path permisos num_llaves <<< "$key_entry" + if [[ $first_entry -eq 1 ]]; then + printf "%-20s %-50s %-10s %-15s %-10s\n" "$username" "$key_path" "$permisos" "$ssh_habilitado" "$num_llaves" + first_entry=0 + else + printf "%-20s %-50s %-10s %-15s %-10s\n" "" "$key_path" "$permisos" "" "" + fi + done USERS_WITH_KEYS+=("$username:${user_keys_paths[*]}") fi @@ -86,14 +95,15 @@ if [[ ${#USERS_WITH_KEYS[@]} -gt 0 ]]; then for user_data in "${USERS_WITH_KEYS[@]}"; do username="${user_data%%:*}" - key_paths="${user_data##*:}" + key_paths=(${user_data##*:}) echo "๐Ÿ‘ค Usuario: $username" - echo "๐Ÿ“ Archivos: $key_paths" echo "------------------------------------------------------------" - for key_path in $key_paths; do - echo "๐Ÿ”น Contenido de $key_path:" + for key_entry in "${key_paths[@]}"; do + IFS=";" read -r key_path _ _ <<< "$key_entry" + echo "๐Ÿ“ Archivo: $key_path" + echo "๐Ÿ”น Contenido:" grep -E "^(ssh-rsa|ssh-ed25519)" "$key_path" 2>/dev/null echo "" done