merged connect and legacy directorys and adapted corresponding readme

This commit is contained in:
2025-09-11 10:57:16 +02:00
parent 81915ddee9
commit 541d173a18
6 changed files with 67 additions and 97 deletions
+150
View File
@@ -0,0 +1,150 @@
# go - SSH-Shortcuts für easyname Server
Bash-Skript für schnelle SSH-Verbindungen zu easyname-Servern mit Kerberos-Authentifizierung.
## Voraussetzungen
- **LUSER** Umgebungsvariable muss gesetzt sein (dein Kerberos-Username)
- Kerberos-Authentifizierung konfiguriert
- SSH-Zugriff auf easyname-Infrastruktur
## Installation
1. **LUSER Variable setzen** (in `~/.bashrc` oder `~/.bash_env`):
```bash
export LUSER="deinusername"
```
2. **Skript ausführbar machen**:
```bash
chmod +x go.sh
```
3. **Optional: In PATH hinzufügen** oder Alias erstellen:
```bash
# Alias in ~/.bashrc
alias go="/pfad/zu/go.sh"
```
## Verwendung
### Kerberos-Authentifizierung
```bash
go kinit # Authentifiziert $LUSER@NESSUS.AT
go k # Kurzform
```
### Web-Server Verbindungen
```bash
go web 42 # Verbindet zu web42.in.easyname.com
go w 42 # Kurzform
go web 42 e110604 # Verbindet und wechselt zu easyuser e110604
go w 42 e110604 # Kurzform mit easyuser
```
### Mail-Server Verbindungen
```bash
go mx 12 # Verbindet zu mx12.in.easyname.com
go m 12 # Kurzform
```
### Logger-Server
```bash
go logger # Verbindet zu logger.in.nessus.at
go l # Kurzform
```
### Support-Server
```bash
go support # Verbindet zu support.in.easyname.com
go s # Kurzform
```
## Remote-Befehle ausführen
Mit `--` können Remote-Befehle direkt ausgeführt werden:
```bash
# Hostname und Uptime auf mx12 anzeigen
go mx 12 -- bash -lc 'hostname; uptime'
# Logs auf logger durchsuchen
go logger -- grep "error" /var/log/syslog
# Here-Doc an Remote-Server senden
go logger -- bash -s <<'EOF'
echo "Mehrere Befehle"
date
hostname
EOF
```
## Technische Details
### Verbindungsverhalten
- **Mit easyuser**: Interaktive TTY-Session mit `-qtt` (für `easyuser` Wechsel)
- **Ohne easyuser**: Non-interaktive Session, ideal für Scripting
- **Remote-Commands**: Werden direkt an SSH durchgereicht
### Server-Mapping
| Kommando | Server |
|----------|--------|
| `web<NR>` | `web<NR>.in.easyname.com` |
| `mx<NR>` | `mx<NR>.in.easyname.com` |
| `logger` | `logger.in.nessus.at` |
| `support` | `support.in.easyname.com` |
### Exit-Codes
Das Skript gibt den Exit-Code des SSH-Befehls direkt weiter, was es ideal für Scripting macht.
## Beispiele für fortgeschrittene Nutzung
### Logs von mehreren Servern sammeln
```bash
for i in {1..5}; do
echo "=== Web$i ==="
go web $i -- tail -n 5 /var/log/apache2/error.log
done
```
### Parallel auf mehreren MX-Servern prüfen
```bash
for mx in 10 11 12; do
go mx $mx -- mailq | head -5 &
done
wait
```
### Mit checkms kombinieren
```bash
# Wenn go als Befehl verfügbar ist, nutzt checkms es automatisch
checkms --minutes 30
```
## Troubleshooting
### LUSER nicht gesetzt
```
Fehler: Bitte LUSER setzen!
```
**Lösung**: `export LUSER="deinusername"` in ~/.bashrc hinzufügen
### Kerberos-Ticket abgelaufen
```
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
```
**Lösung**: `go kinit` ausführen
### Server-Nummer vergessen
```
Fehler: 'go web' benötigt <NR> [EUSER].
```
**Lösung**: Server-Nummer angeben, z.B. `go web 42`
---
*Dieses Skript wurde mit Hilfe von Claude Code erstellt.*
+76
View File
@@ -0,0 +1,76 @@
#!/usr/bin/env bash
# go - SSH-Shortcuts für easyname Server
set -euo pipefail
LUSER="${LUSER:?Bitte LUSER setzen!}"
usage() {
cat <<USAGE
Usage:
go k|kinit
go w|web <NR> [EUSER] [-- <REMOTE-CMD>...]
go m|mx <NR> [-- <REMOTE-CMD>...]
go l|logger [-- <REMOTE-CMD>...]
go s|support [-- <REMOTE-CMD>...]
Beispiele:
go web 42
go web 42 e110604
go mx 12 -- bash -lc 'hostname; uptime'
go logger -- bash -s # für Here-Doc
USAGE
}
[[ $# -ge 1 ]] || { usage; exit 1; }
cmd="$1"; shift || true
case "$cmd" in
k|kinit)
exec kinit "${LUSER}@NESSUS.AT"
;;
w|web)
# go web NR [EUSER] [-- REMOTE-CMD...]
[[ $# -ge 1 ]] || { echo "Fehler: 'go web' benötigt <NR> [EUSER]." >&2; usage; exit 1; }
nr="$1"; shift || true
host="${LUSER}@web${nr}.in.easyname.com"
if [[ $# -ge 1 && "$1" != "--" ]]; then
# EUSER angegeben -> interaktiv mit TTY (für easyuser), trotzdem leiser (-q)
euser="$1"; shift || true
exec ssh -qtt "$host" "bash -lic 'easyuser \"$euser\"'"
else
# keine EUSER -> nicht-interaktiv; evtl. REMOTE-CMD nach "--" durchreichen
[[ $# -ge 1 && "$1" == "--" ]] && shift || true
exec ssh "$host" "$@"
fi
;;
m|mx)
# go mx NR [-- REMOTE-CMD...]
[[ $# -ge 1 ]] || { echo "Fehler: 'go mx' benötigt <NR>." >&2; usage; exit 1; }
nr="$1"; shift || true
host="${LUSER}@mx${nr}.in.easyname.com"
[[ $# -ge 1 && "$1" == "--" ]] && shift || true
exec ssh "$host" "$@"
;;
l|logger)
# go logger [-- REMOTE-CMD...]
host="${LUSER}@logger.in.nessus.at"
[[ $# -ge 1 && "$1" == "--" ]] && shift || true
exec ssh "$host" "$@"
;;
s|support)
# go support [-- REMOTE-CMD...]
host="${LUSER}@support.in.easyname.com"
[[ $# -ge 1 && "$1" == "--" ]] && shift || true
exec ssh "$host" "$@"
;;
*)
usage; exit 1
;;
esac