Update ssh_key_checks
Obtiene la configuración de authorized_keys Revisa el archivo /etc/ssh/sshd_config para encontrar la ruta configurada de authorized_keys. Si no está definida en sshd_config, usa la ruta por defecto: .ssh/authorized_keys dentro del home de cada usuario. Muestra una tabla con información clave Para cada usuario del sistema, muestra: Nombre de usuario Ruta del archivo authorized_keys (si existe) Permisos del archivo (por ejemplo, 600) Si el usuario tiene permitido conectarse por SSH (según AllowUsers, DenyUsers, AllowGroups, DenyGroups) Número de llaves SSH almacenadas en el archivo authorized_keys Guarda los usuarios que tienen llaves SSH Si un usuario tiene llaves en su authorized_keys, se almacena en una lista para procesarlas después. Muestra las llaves SSH de cada usuario Para cada usuario con llaves SSH, imprime el contenido de su archivo authorized_keys.
This commit is contained in:
parent
de13437b47
commit
863e7a47d1
@ -1,5 +1,5 @@
|
||||
#!/bin/bash
|
||||
# se debe ejecutar con usuario root por el tema de persmisos del archivo authorized_keys
|
||||
# Se debe ejecutar con usuario root por el tema de permisos del archivo authorized_keys
|
||||
|
||||
# Obtener configuración de authorized_keys desde sshd_config
|
||||
AUTH_KEYS_PATH=$(grep -E "^\s*AuthorizedKeysFile" /etc/ssh/sshd_config | awk '{print $2}')
|
||||
@ -14,6 +14,9 @@ echo "------------------------------------------------------------"
|
||||
printf "%-20s %-40s %-10s %-15s %-10s\n" "Usuario" "Ruta authorized_keys" "Permisos" "SSH Habilitado" "Llaves"
|
||||
echo "------------------------------------------------------------"
|
||||
|
||||
# Variables para almacenar usuarios con llaves
|
||||
USERS_WITH_KEYS=()
|
||||
|
||||
# Obtener usuarios permitidos y denegados en sshd_config
|
||||
ALLOW_USERS=$(grep -E "^\s*AllowUsers" /etc/ssh/sshd_config | awk '{$1=""; print $0}')
|
||||
DENY_USERS=$(grep -E "^\s*DenyUsers" /etc/ssh/sshd_config | awk '{$1=""; print $0}')
|
||||
@ -34,6 +37,11 @@ while IFS=: read -r username _ _ _ _ homedir _; do
|
||||
if [[ -f "$user_keys_path" ]]; then
|
||||
permisos=$(stat -c "%a" "$user_keys_path")
|
||||
num_llaves=$(grep -c "ssh-" "$user_keys_path")
|
||||
|
||||
# Guardar usuario en lista si tiene llaves
|
||||
if [[ $num_llaves -gt 0 ]]; then
|
||||
USERS_WITH_KEYS+=("$username:$user_keys_path")
|
||||
fi
|
||||
else
|
||||
permisos="No existe"
|
||||
num_llaves=0
|
||||
@ -74,3 +82,23 @@ while IFS=: read -r username _ _ _ _ homedir _; do
|
||||
done < /etc/passwd
|
||||
|
||||
echo "------------------------------------------------------------"
|
||||
|
||||
# Mostrar las llaves de cada usuario que tenga llaves autorizadas
|
||||
if [[ ${#USERS_WITH_KEYS[@]} -gt 0 ]]; then
|
||||
echo ""
|
||||
echo "🔑 Claves SSH autorizadas por usuario:"
|
||||
echo "============================================================"
|
||||
|
||||
for user_data in "${USERS_WITH_KEYS[@]}"; do
|
||||
username="${user_data%%:*}"
|
||||
key_path="${user_data##*:}"
|
||||
|
||||
echo "👤 Usuario: $username"
|
||||
echo "📁 Archivo: $key_path"
|
||||
echo "------------------------------------------------------------"
|
||||
cat "$key_path"
|
||||
echo ""
|
||||
done
|
||||
else
|
||||
echo "❌ No se encontraron usuarios con llaves SSH autorizadas."
|
||||
fi
|
||||
Loading…
Reference in New Issue
Block a user