SSH PasswordAuthentication changer
This commit is contained in:
		
							parent
							
								
									05ae7c7409
								
							
						
					
					
						commit
						147c3363f7
					
				| 
						 | 
					@ -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
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -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.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue