Erster Commit
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