- go.sh SSH-Shortcut Tool mit vollständiger Dokumentation - Neue Connect-Kategorie für Verbindungstools - Umfassende .gitignore mit rekursiven Mustern - CLAUDE.md für zukünftige Claude Code Instanzen - README-Updates für bessere Navigation Die Connect-Tools vereinfachen SSH-Verbindungen zu easyname-Servern mit Kerberos-Auth und unterstützen Web-, MX-, Logger- und Support-Server. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
150 lines
3.2 KiB
Markdown
150 lines
3.2 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)
|
|
- 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.* |