SSH PasswordAuthentication changer

This commit is contained in:
klaas 2025-03-26 16:29:09 +01:00
parent 05ae7c7409
commit 147c3363f7
2 changed files with 86 additions and 0 deletions

65
ssh_password Normal file
View File

@ -0,0 +1,65 @@
#!/usr/bin/env bash
CONFIG_FILE="/etc/ssh/sshd_config"
BACKUP_FILE="/etc/ssh/sshd_config.bak"
# Nur root darf Änderungen machen
if [ "$EUID" -ne 0 ] && [ "$1" != "-s" ]; then
echo "Bitte mit sudo ausführen."
exit 1
fi
# Funktion: Aktuellen Status anzeigen
show_status() {
grep -E "^PasswordAuthentication" "$CONFIG_FILE" | awk '{ print $2 }'
}
# Funktion: Setzen von PasswordAuthentication
set_password_auth() {
VALUE=$1
echo "Setze PasswordAuthentication auf '$VALUE' ..."
# Backup
cp "$CONFIG_FILE" "$BACKUP_FILE"
# Setzen oder hinzufügen
if grep -q "^PasswordAuthentication" "$CONFIG_FILE"; then
sed -i "s/^PasswordAuthentication.*/PasswordAuthentication $VALUE/" "$CONFIG_FILE"
else
echo "PasswordAuthentication $VALUE" >> "$CONFIG_FILE"
fi
# SSH-Dienst neustarten
if systemctl is-active --quiet ssh; then
systemctl restart ssh
elif systemctl is-active --quiet sshd; then
systemctl restart sshd
else
echo "SSH-Dienst konnte nicht gefunden werden."
exit 1
fi
echo "Done. PasswordAuthentication ist jetzt '$VALUE'."
}
# Parameter auswerten
case "$1" in
-y)
set_password_auth "yes"
;;
-n)
set_password_auth "no"
;;
-s)
STATUS=$(show_status)
echo "Aktueller Status von PasswordAuthentication: ${STATUS:-(nicht gesetzt)}"
;;
*)
echo "Benutzung:"
echo " sudo ./password -y # aktiviert PasswordAuthentication"
echo " sudo ./password -n # deaktiviert PasswordAuthentication"
echo " ./password -s # zeigt aktuellen Status (kein sudo nötig)"
exit 1
;;
esac

21
ssh_password.help Normal file
View File

@ -0,0 +1,21 @@
NAME
ssh_password - verwaltet SSH PasswordAuthentication
SYNOPSIS
sudo ./ssh_password -y
sudo ./ssh_password -n
./ssh_password -s
BESCHREIBUNG
Dieses Skript aktiviert oder deaktiviert die Option PasswordAuthentication
in /etc/ssh/sshd_config und startet anschließend den SSH-Dienst neu.
OPTIONEN
-y Setzt PasswordAuthentication auf 'yes'
-n Setzt PasswordAuthentication auf 'no'
-s Zeigt den aktuellen Status (kein sudo nötig)
HINWEIS
Änderungen erfordern root-Rechte.
Vor jeder Änderung wird ein Backup der sshd_config erstellt.