Files
esn-support-bash-snippets/legacy/go/README.md
T

172 lines
4.1 KiB
Markdown

# 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)
- **WHUSER** Umgebungsvariable muss gesetzt sein (dein internal-IT-Username)
- Kerberos-Authentifizierung konfiguriert
- SSH-Zugriff auf easyname-Infrastruktur
## Installation
1. **LUSER und WHUSER Variable setzen** (in `~/.bashrc` oder `~/.bash_env`):
```bash
export LUSER="deinusername"
export WHUSER="deinusername"
```
2. **Installation über Installer**:
```bash
# Im Repository-Hauptverzeichnis
./install.sh
```
Das Installationsscript erstellt automatisch einen Symlink in `~/bin`, sodass `go` direkt verfügbar ist.
## 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
```
### WH20-Server
```bash
go o 10 # Verbindet zu web10.wh20.easyname.systems
go wh20 10 # Verbindet zu web10.wh20.easyname.systems
go a 252 # Verbindet zu srv252.adino.at
go adino 252 # Verbindet zu srv252.adino.at
go i 30 # Verbindet zu ws30.inname.net
go inname 30 # Verbindet zu ws30.inname.net
## 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` |
| `wh20 <NR>` | `<NR>.wh20.easyname.systems` |
| `adino <NR>` | `srv<NR>.adino.at` |
| `inname <NR>` | `ws<NR>.inname.net` |
### 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
```
### Mit adspam und donaspam kombinieren
```bash
# Wenn go als Befehl verfügbar ist, nutzen adspam und donaspam es automatisch
adspam # oder donaspam, beides funktioniert
```
## Troubleshooting
### LUSER nicht gesetzt
```
Fehler: Bitte LUSER setzen!
```
**Lösung**: `export LUSER="deinusername"` in ~/.bashrc hinzufügen
### WHUSER nicht gesetzt
```
Fehler: Bitte WHUSER setzen!
```
**Lösung**: `export WHUSER="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.*