merged connect and legacy directorys and adapted corresponding readme
This commit is contained in:
@@ -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.*
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user