Update Linux/SSH/README.md
This commit is contained in:
@@ -3,7 +3,8 @@
|
|||||||
```bash
|
```bash
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
printf "\033c" # Bildschirm löschen zu Beginn
|
# Bildschirm löschen (Kompatibel mit Strg+L)
|
||||||
|
printf "\033c"
|
||||||
|
|
||||||
SSH_CONFIG_DIR="/etc/ssh/sshd_config.d"
|
SSH_CONFIG_DIR="/etc/ssh/sshd_config.d"
|
||||||
SSH_MAIN_CONFIG="/etc/ssh/sshd_config"
|
SSH_MAIN_CONFIG="/etc/ssh/sshd_config"
|
||||||
@@ -18,14 +19,14 @@ BLUE='\033[1;34m'
|
|||||||
WHITE='\033[1;37m'
|
WHITE='\033[1;37m'
|
||||||
RESET='\033[0m'
|
RESET='\033[0m'
|
||||||
|
|
||||||
# Punkt-Spinner (Docker-Stil)
|
# Rotierender Kreis-Spinner
|
||||||
spinner() {
|
spinner() {
|
||||||
local pid=$1
|
local pid=$1
|
||||||
local delay=0.15
|
local delay=0.1
|
||||||
local frames=('. ' '.. ' '...')
|
local spinstr='|/-\'
|
||||||
while [ "$(ps a | awk '{print $1}' | grep $pid)" ]; do
|
while kill -0 $pid 2> /dev/null; do
|
||||||
for frame in "${frames[@]}"; do
|
for i in {0..3}; do
|
||||||
printf " [%s] " "$frame"
|
printf " [%c] " "${spinstr:i:1}"
|
||||||
sleep $delay
|
sleep $delay
|
||||||
printf "\b\b\b\b\b\b"
|
printf "\b\b\b\b\b\b"
|
||||||
done
|
done
|
||||||
@@ -50,9 +51,17 @@ install_package() {
|
|||||||
local package=$1
|
local package=$1
|
||||||
local cmd=$2
|
local cmd=$2
|
||||||
warn "Installiere $package..."
|
warn "Installiere $package..."
|
||||||
$cmd &> /dev/null &
|
( $cmd &> /dev/null ) 2>&1 & # Ausgaben vollständig unterdrücken
|
||||||
spinner $!
|
disown # Prozess von der Shell trennen, keine Ausgabe von [1] 3562
|
||||||
|
local pid=$!
|
||||||
|
spinner $pid
|
||||||
|
wait $pid
|
||||||
|
if [ $? -eq 0 ]; then
|
||||||
log "$package wurde erfolgreich installiert."
|
log "$package wurde erfolgreich installiert."
|
||||||
|
else
|
||||||
|
error "Fehler bei der Installation von $package."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# Überprüfe und installiere sudo, falls nicht vorhanden
|
# Überprüfe und installiere sudo, falls nicht vorhanden
|
||||||
@@ -94,7 +103,7 @@ fi
|
|||||||
# Generiere fehlende Host-Schlüssel (Ed25519)
|
# Generiere fehlende Host-Schlüssel (Ed25519)
|
||||||
if [ ! -f "$ED25519_KEY" ]; then
|
if [ ! -f "$ED25519_KEY" ]; then
|
||||||
warn "Host-Schlüssel fehlt. Generiere ssh_host_ed25519_key..."
|
warn "Host-Schlüssel fehlt. Generiere ssh_host_ed25519_key..."
|
||||||
sudo ssh-keygen -t ed25519 -f $ED25519_KEY -N "" &> /dev/null &
|
( sudo ssh-keygen -t ed25519 -f $ED25519_KEY -N "" &> /dev/null ) 2>&1 &
|
||||||
spinner $!
|
spinner $!
|
||||||
sudo chown root:root $ED25519_KEY
|
sudo chown root:root $ED25519_KEY
|
||||||
sudo chmod 600 $ED25519_KEY
|
sudo chmod 600 $ED25519_KEY
|
||||||
@@ -127,7 +136,7 @@ for user in $SSH_USERS; do
|
|||||||
log "Benutzer $user existiert."
|
log "Benutzer $user existiert."
|
||||||
VALID_USERS+="$user "
|
VALID_USERS+="$user "
|
||||||
else
|
else
|
||||||
echo -en "${BLUE}Benutzer $user existiert nicht. Soll dieser erstellt werden? ${YELLOW}[${WHITE}y/n${YELLOW}]${RESET}: "
|
echo -en "${BLUE}Benutzer ${WHITE}$user${BLUE} existiert nicht. Soll dieser erstellt werden? ${YELLOW}[${WHITE}y/n${YELLOW}]${RESET}: "
|
||||||
read CREATE_USER
|
read CREATE_USER
|
||||||
if [ "$CREATE_USER" == "y" ]; then
|
if [ "$CREATE_USER" == "y" ]; then
|
||||||
sudo adduser $user
|
sudo adduser $user
|
||||||
@@ -142,7 +151,7 @@ for user in $SSH_USERS; do
|
|||||||
sudo chmod 700 /home/$user/.ssh
|
sudo chmod 700 /home/$user/.ssh
|
||||||
sudo chmod 600 /home/$user/.ssh/authorized_keys
|
sudo chmod 600 /home/$user/.ssh/authorized_keys
|
||||||
|
|
||||||
echo -en "${BLUE}Möchtest du einen SSH Public Key für $user hinzufügen? ${YELLOW}[${WHITE}y/n${YELLOW}]${RESET}: "
|
echo -en "${BLUE}Möchtest du einen SSH Public Key für ${WHITE}$user${BLUE} hinzufügen? ${YELLOW}[${WHITE}y/n${YELLOW}]${RESET}: "
|
||||||
read ADD_KEY
|
read ADD_KEY
|
||||||
if [ "$ADD_KEY" == "y" ]; then
|
if [ "$ADD_KEY" == "y" ]; then
|
||||||
echo -en "${BLUE}Füge den SSH Public Key hier ein: ${RESET}"
|
echo -en "${BLUE}Füge den SSH Public Key hier ein: ${RESET}"
|
||||||
@@ -171,5 +180,5 @@ EOL
|
|||||||
warn "Prüfe SSH-Konfiguration..."
|
warn "Prüfe SSH-Konfiguration..."
|
||||||
sudo sshd -t && sudo systemctl restart sshd && log "SSH-Dienst erfolgreich neu gestartet."
|
sudo sshd -t && sudo systemctl restart sshd && log "SSH-Dienst erfolgreich neu gestartet."
|
||||||
|
|
||||||
log "Setup abgeschlossen! Nur folgende Benutzer dürfen sich per SSH anmelden: $VALID_USERS"
|
log "Setup abgeschlossen! Nur folgende Benutzer dürfen sich per SSH anmelden: ${WHITE}$VALID_USERS"
|
||||||
```
|
```
|
||||||
Reference in New Issue
Block a user