Sun Jun 15 07:24:57 PM CEST 2025
This commit is contained in:
313
ssher.sh
Normal file
313
ssher.sh
Normal file
@ -0,0 +1,313 @@
|
|||||||
|
sstand="2025-05-21"
|
||||||
|
eende="nein"
|
||||||
|
|
||||||
|
############ Werte anpassen: #################
|
||||||
|
logmodus="beide" # beide: Lokal und auf 100.87.87.2 / lokal: nur lokal / remote: nur auf 100.87.87.2
|
||||||
|
loglokaldatei="/$HOME/ssher.log" # erforderlich bei Log-Modus "beide" und "lokal"
|
||||||
|
sschluessel="id_superao"
|
||||||
|
schluesselverz="/home/alf/Schlüssel"
|
||||||
|
##############################################
|
||||||
|
|
||||||
|
pport="2222"
|
||||||
|
uuser="alf"
|
||||||
|
|
||||||
|
a_tail="100.87.87"
|
||||||
|
a_chef2="2"
|
||||||
|
a_tresor="3"
|
||||||
|
a_ca="5"
|
||||||
|
a_omv7="7"
|
||||||
|
a_chrome="47"
|
||||||
|
a_p40="50"
|
||||||
|
a_p3="53"
|
||||||
|
a_p7="77"
|
||||||
|
a_omvpi="80"
|
||||||
|
a_omv2000="81"
|
||||||
|
a_flug="101"
|
||||||
|
a_ABS="102"
|
||||||
|
a_spzssh="52"
|
||||||
|
|
||||||
|
function anzeige () {
|
||||||
|
clear
|
||||||
|
echo "---------------------------------"
|
||||||
|
echo "SSH - Verbindungs MGR V0.01"
|
||||||
|
echo "---------------------------------"
|
||||||
|
echo "User: $uuser"
|
||||||
|
echo "Port: $pport"
|
||||||
|
echo "Schlüssel: $sschluessel"
|
||||||
|
echo "Schlüssel-Verz.: $schluesselverz"
|
||||||
|
echo "Logmodus: $logmodus"
|
||||||
|
echo "--------------------------------"
|
||||||
|
echo "Schlüssel im Verzeichnis:"
|
||||||
|
ls $schluesselverz/id_*
|
||||||
|
echo "--------------------------------"
|
||||||
|
echo "1 … OMV-Pi 101 … Flugsicherung"
|
||||||
|
echo "2 … OMV 2000 102 … ABS"
|
||||||
|
echo "3 … Tresor-Router"
|
||||||
|
echo "4 … Chromebook"
|
||||||
|
echo "5 … CA"
|
||||||
|
echo "7 … OMV 7"
|
||||||
|
echo "8 … Chefnetz2"
|
||||||
|
echo "p1 … SPZSSH (root)"
|
||||||
|
echo "p3 … PC 3 (Moser)"
|
||||||
|
echo "p7 … PC77"
|
||||||
|
echo "p40 … PTV PC 40 (Besucher OT Ew)"
|
||||||
|
echo " "
|
||||||
|
echo "l … Log sehen / p … Port ändern / u … User ändern / s … Schlüssel ändern / v … Schlüsselverzeichnis ändern"
|
||||||
|
echo "L … Sicherung laden / S … Sichern"
|
||||||
|
echo "0 … Ende "
|
||||||
|
echo " "
|
||||||
|
}
|
||||||
|
|
||||||
|
function verbinde () {
|
||||||
|
nnummer=$1
|
||||||
|
log "Verbinde mit $nnummer…"
|
||||||
|
ssh $uuser@$a_tail.$nnummer -p $pport -i $schluesselverz/$sschluessel
|
||||||
|
eerr=$?
|
||||||
|
if [ $eerr = 0 ]
|
||||||
|
then
|
||||||
|
log "Fertig, alles ok!"
|
||||||
|
sleep 1
|
||||||
|
else
|
||||||
|
log "Da ist ein Fehler aufgetreten: ERR $eerr"
|
||||||
|
read -p "Weiter mit Enter… " wweiter
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function wahlschluesselverz () {
|
||||||
|
log "Ändere Schlüsselverzeichnis…"
|
||||||
|
read -p "Wechsel in Verzeichnis: " schluesselverz
|
||||||
|
log "Geändert zu: $schluesselverz"
|
||||||
|
echo " "
|
||||||
|
echo "Schlüssel im Verzeichnis: "
|
||||||
|
ls $schluesselverz/id_*
|
||||||
|
echo " "
|
||||||
|
read -p "OK? j/n " janein
|
||||||
|
case $janein in
|
||||||
|
j)
|
||||||
|
log "Wechsel zu $schluesselverz bestätigt"
|
||||||
|
sleep 2
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
log "Wechsel des Schlüsselverzeichnisses wird verworfen"
|
||||||
|
log "Schlüsselvberzeichnis wird zurückgesetzt auf $altverz"
|
||||||
|
schluesselverz=$altverz
|
||||||
|
sleep 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
function wahlschluessel () {
|
||||||
|
log "Wähle neuen Schlüssel"
|
||||||
|
echo "Schlüssel im Verzeichnis:"
|
||||||
|
ls $schluesselverz/id_*
|
||||||
|
echo " "
|
||||||
|
read -p "Schlüssel: " sschluessel
|
||||||
|
log "Ändere Schlüssel auf $sschluessel"
|
||||||
|
}
|
||||||
|
|
||||||
|
function sichern () {
|
||||||
|
altschluessel=$sschluessel
|
||||||
|
altuser=$uuser
|
||||||
|
altverz=$schluesselverz
|
||||||
|
altport=$pport
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function laden () {
|
||||||
|
sschluessel=$altschluessel
|
||||||
|
uuser=$altuser
|
||||||
|
schluesselverz=$altverz
|
||||||
|
pport=$altport
|
||||||
|
}
|
||||||
|
|
||||||
|
function log () {
|
||||||
|
logtext="$1"
|
||||||
|
# echo "$logtext"
|
||||||
|
case $logmodus in
|
||||||
|
"lokal")
|
||||||
|
echo "$(date) SSHER $logtext" >>$loglokaldatei
|
||||||
|
echo "$(date) SSHER $logtext"
|
||||||
|
;;
|
||||||
|
|
||||||
|
"remote")
|
||||||
|
logger -s -t "SSHER" "$logtext"
|
||||||
|
;;
|
||||||
|
|
||||||
|
"beide")
|
||||||
|
echo "$(date) SSHER $logtext" >>$loglokaldatei
|
||||||
|
logger -s -t "SSHER" "$logtext"
|
||||||
|
;;
|
||||||
|
"*")
|
||||||
|
ECHO "Fehler!"
|
||||||
|
exit 2
|
||||||
|
esac
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
################ Vorbereitung ###########################
|
||||||
|
log "-------------------------------------------------------------------"
|
||||||
|
log "Starte SSHER..."
|
||||||
|
log "Prüfe auf vorhandene Schlüssel…"
|
||||||
|
korrekt="nein"
|
||||||
|
durchl=3
|
||||||
|
|
||||||
|
while [ $korrekt = "nein" ]
|
||||||
|
do
|
||||||
|
log "Prüfe, ob Schlüssel vorhanden... "
|
||||||
|
if [ -e $schluesselverz/$sschluessel ]
|
||||||
|
then
|
||||||
|
log "Schlüssel vorhanden!"
|
||||||
|
korrekt="ja"
|
||||||
|
else
|
||||||
|
((durchl--))
|
||||||
|
if [ $durchl = 0 ]
|
||||||
|
then
|
||||||
|
log "Abbruch: Keine Schlüssel gefunden"
|
||||||
|
exit 2
|
||||||
|
else
|
||||||
|
echo "Die Schlüsseldatei $sschluessel wurde nicht gefunden."
|
||||||
|
echo "Verzeichnis: $schluesselverz"
|
||||||
|
echo " "
|
||||||
|
log "Keine Schlüssel gefunden, Neuwahl…"
|
||||||
|
wahlschluesselverz
|
||||||
|
wahlschluessel
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
########## Hauptschleife ############
|
||||||
|
log "Starte Hauptschleife…"
|
||||||
|
log "Standarddaten sichern..."
|
||||||
|
sichern
|
||||||
|
|
||||||
|
while [ $eende = "nein" ]
|
||||||
|
do
|
||||||
|
anzeige
|
||||||
|
read -p "Wahl? " wwahl
|
||||||
|
|
||||||
|
case $wwahl in
|
||||||
|
|
||||||
|
0) #Schluss
|
||||||
|
eende="ja"
|
||||||
|
log "Beendet!"
|
||||||
|
;;
|
||||||
|
|
||||||
|
1) #OMV Pi
|
||||||
|
verbinde $a_omvpi
|
||||||
|
;;
|
||||||
|
|
||||||
|
2) #OMV 2000
|
||||||
|
verbinde $a_omv2000
|
||||||
|
;;
|
||||||
|
|
||||||
|
3) # Tresor-Router
|
||||||
|
verbinde $a_tresor
|
||||||
|
;;
|
||||||
|
|
||||||
|
4) #Chromebook
|
||||||
|
verbinde $a_chrome
|
||||||
|
;;
|
||||||
|
|
||||||
|
5) # CA
|
||||||
|
verbinde $a_ca
|
||||||
|
;;
|
||||||
|
|
||||||
|
7) #OMV 7
|
||||||
|
verbinde $a_omv7
|
||||||
|
;;
|
||||||
|
|
||||||
|
8) #Chefnetz 2
|
||||||
|
verbinde $a_chef2
|
||||||
|
;;
|
||||||
|
|
||||||
|
101) # Flugsicherung Ubuntuserver 1
|
||||||
|
sichern
|
||||||
|
verbinde $a_flug
|
||||||
|
;;
|
||||||
|
|
||||||
|
102) # ABS Ubuntuserver 2
|
||||||
|
sichern
|
||||||
|
verbinde $a_ABS
|
||||||
|
;;
|
||||||
|
|
||||||
|
l) #Log sehen
|
||||||
|
if [ $logmodus = "beide" ]
|
||||||
|
then
|
||||||
|
log "Lokales Log lesen…"
|
||||||
|
less ssher.log
|
||||||
|
log "fertig."
|
||||||
|
else
|
||||||
|
if [ $logmodus = "lokal" ]
|
||||||
|
then
|
||||||
|
log "Lokales Log lesen…"
|
||||||
|
less ssher.log
|
||||||
|
log "fertig."
|
||||||
|
else
|
||||||
|
echo "Die Logdaten liegen ausschließlich auf chefnetz2".
|
||||||
|
echo "Bitte dort im Verzeichnis /var/log/remote… nachsehen!"
|
||||||
|
read -p "Weiter mit Enter…" wwarte
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
|
||||||
|
L) # Gesicherte Daten laden
|
||||||
|
log "Daten laden"
|
||||||
|
laden
|
||||||
|
;;
|
||||||
|
|
||||||
|
S) # Sichern
|
||||||
|
log "Daten sichern"
|
||||||
|
sichern
|
||||||
|
;;
|
||||||
|
|
||||||
|
p1) #SPZSSH
|
||||||
|
log "Ändere Nutzer zeitw. auf root und Port auf 22"
|
||||||
|
sichern
|
||||||
|
uuser="root"
|
||||||
|
pport=22
|
||||||
|
sleep 2
|
||||||
|
verbinde $a_spzssh
|
||||||
|
laden
|
||||||
|
log "Nutzer zurückgesetzt auf $uuser und Port $pport"
|
||||||
|
;;
|
||||||
|
|
||||||
|
p3) #PC 3
|
||||||
|
verbinde $a_p3
|
||||||
|
;;
|
||||||
|
|
||||||
|
p7) #PC 77
|
||||||
|
verbinde $a_p7
|
||||||
|
;;
|
||||||
|
|
||||||
|
p40) #PC 40
|
||||||
|
verbinde $a_p40
|
||||||
|
;;
|
||||||
|
|
||||||
|
p) #Port-Änderung
|
||||||
|
read -p "Port: " pport
|
||||||
|
log "Ändere Port auf $pport"
|
||||||
|
;;
|
||||||
|
|
||||||
|
u) #Nutzer-Änderung
|
||||||
|
read -p "User: " uuser
|
||||||
|
log "Ändere Nutzer auf $uuser"
|
||||||
|
;;
|
||||||
|
|
||||||
|
v) #Schlüsselverzeichnis ändern
|
||||||
|
wahlschluesselverz
|
||||||
|
;;
|
||||||
|
|
||||||
|
s) #Schlüssel ändern
|
||||||
|
wahlschluessel
|
||||||
|
;;
|
||||||
|
|
||||||
|
|
||||||
|
*) #Fehleingabe
|
||||||
|
echo "Was meinst Du?!"
|
||||||
|
log "Fehleingabe!"
|
||||||
|
sleep 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
Reference in New Issue
Block a user