login.sh aktualisiert
Unterscheidung zwischen Servern, die nur mittel PublicKey und solchen, die mit zertifizierten PublicKeys verbunden werden. Die Unterscheidung findet in Zeile 83 statt. Server, die hier eingetragen sind, werden nur mit dem PublicKey, dessen Pfad in Zeile 27 ("SIMPLE_KEY") angegeben ist, verbunden.
This commit is contained in:
19
login.sh
19
login.sh
@ -1,9 +1,9 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
set -e
|
set -e
|
||||||
GIT_PFAD="$HOME/Gitea"
|
GIT_PFAD="$HOME/Dokumente/Gitea"
|
||||||
source $GIT_PFAD/logger/logger.sh
|
source $GIT_PFAD/logger/logger.sh
|
||||||
|
|
||||||
LOGBUCH="$GIT_PFAD/logger/Logs/sshlogin.log"
|
LOGBUCH="$GIT_PFAD/logger/Logs/ssh-login.log"
|
||||||
log_init "$LOGBUCH"
|
log_init "$LOGBUCH"
|
||||||
log_start
|
log_start
|
||||||
log_info "Starte sshlogin…"
|
log_info "Starte sshlogin…"
|
||||||
@ -24,7 +24,7 @@ CA_PORT=2222
|
|||||||
REMOTE_SIGN_SCRIPT="/home/alf/remote_sign.sh" # Pfad auf der CA-VM, wo das Script zum Signieren zu finden ist
|
REMOTE_SIGN_SCRIPT="/home/alf/remote_sign.sh" # Pfad auf der CA-VM, wo das Script zum Signieren zu finden ist
|
||||||
KEY_DIR="./temp_keys"
|
KEY_DIR="./temp_keys"
|
||||||
KEY_NAME="temp_user_key"
|
KEY_NAME="temp_user_key"
|
||||||
|
SIMPLE_KEY="/media/oberkoetter/schluessel1/id_oberkoetter" # Für das einfache Login ohne Zertifikat, aber mit PublicKey. Die Variable gibt die Lage des PubKeys an.
|
||||||
|
|
||||||
# Prüfen, ob der CA-Schlüssel vorhanden ist
|
# Prüfen, ob der CA-Schlüssel vorhanden ist
|
||||||
if [[ ! -f "$CA_KEY_PATH" ]]; then
|
if [[ ! -f "$CA_KEY_PATH" ]]; then
|
||||||
@ -54,6 +54,8 @@ declare -A HOSTS=(
|
|||||||
["PROXI"]="100.87.87.100"
|
["PROXI"]="100.87.87.100"
|
||||||
["MATE3"]="100.87.87.108"
|
["MATE3"]="100.87.87.108"
|
||||||
["PC77"]="100.87.87.77"
|
["PC77"]="100.87.87.77"
|
||||||
|
["Nextcloud PTV"]="cloud.ptv-euregio.de"
|
||||||
|
["SPZSSH"]="alsdorf.spznord.de"
|
||||||
)
|
)
|
||||||
|
|
||||||
TARGET_LABEL=$(gum choose --header "Zielsystem wählen" "${!HOSTS[@]}")
|
TARGET_LABEL=$(gum choose --header "Zielsystem wählen" "${!HOSTS[@]}")
|
||||||
@ -76,6 +78,15 @@ VALIDITY_OPTIONS=("300" "600" "1800" "3600") # Sekunden
|
|||||||
VALIDITY=$(gum choose --header "Gültigkeitsdauer des Zertifikats wählen (Sekunden)" "${VALIDITY_OPTIONS[@]}")
|
VALIDITY=$(gum choose --header "Gültigkeitsdauer des Zertifikats wählen (Sekunden)" "${VALIDITY_OPTIONS[@]}")
|
||||||
log_info "Zertifikatsgültigkeit: $VALIDITY Sekunden"
|
log_info "Zertifikatsgültigkeit: $VALIDITY Sekunden"
|
||||||
|
|
||||||
|
# Hier unterscheiden zwischen Servern, die mittels einfachem PublicKey-Verfahren und solchen, die per zertifiziertem Schlüssel angesteuert werden.
|
||||||
|
case $TARGET_LABEL in
|
||||||
|
"Nextcloud PTV" | "SPZSSH")
|
||||||
|
log_info "Einfaches Login mit statischen PublicKey..."
|
||||||
|
ssh -p "$TARGET_PORT" -i "$SIMPLE_KEY" "$SSH_USER@$TARGET_HOST"
|
||||||
|
log_info " ERR: $?"
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
# Schlüssel vorbereiten
|
# Schlüssel vorbereiten
|
||||||
mkdir -p "$KEY_DIR"
|
mkdir -p "$KEY_DIR"
|
||||||
cd "$KEY_DIR"
|
cd "$KEY_DIR"
|
||||||
@ -106,5 +117,7 @@ scp -P "$CA_PORT" -i "$CA_KEY_PATH" "${CA_USER}@${CA_HOST}:/tmp/${KEY_NAME}-cert
|
|||||||
|
|
||||||
log_info "Zertifikat erfolgreich erhalten – starte SSH-Verbindung"
|
log_info "Zertifikat erfolgreich erhalten – starte SSH-Verbindung"
|
||||||
ssh -p "$TARGET_PORT" -i "$KEY_NAME" "$SSH_USER@$TARGET_HOST"
|
ssh -p "$TARGET_PORT" -i "$KEY_NAME" "$SSH_USER@$TARGET_HOST"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
log_end "SSH-Login abgeschlossen"
|
log_end "SSH-Login abgeschlossen"
|
||||||
|
|||||||
Reference in New Issue
Block a user