Doku: tmux OSC-11-Leak (Windows Terminal) + pve2 SSH auf Horus.
Issue und Shared-Config für escape-time/O11-Fix; pve2-Keys in horus-root.pub. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -8,3 +8,5 @@ ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIJJvDmBpuduGeVdN92I/tr5YkfmQo5fQ4lI5ZgakRQef
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIADkU1x7tNWVg30edAF9lU6ik5UFK1I5NScyiQNgcqvc root@docker-pve1
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHFYVCd+5vmG2L5kKsu8eBmgi4DN9Bj0N/6HBuG7WuMw root@server5
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHMi3cDD/bZfrDZad0UeYGs1vJl1e3UuDTo2zp92APhm root@server6
|
||||
ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICXDMnLAJlxd56f6BCJAjVFbaTDcI2lLMOQf1OWCGzaA root@pve2
|
||||
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC6NPVyFfE1hUimqs18TxjIB72+o59CVVQbJzK0cGmvzROnoR4iGPelwvGFnRUOdUbnGXK5TkQQB6dCnLKHEdULyQ5yXimI37Ywerr5cMorUF3QtWp4WHs2ewPgvdjc0gL0GLlSq7mHQ649PZbhpHo8GlOudsdEVqoxOKcvI/V572huuItTYj0AMnSHglQ1NR0jjeo6ItDblEpU6Anj4knqQYYyOD1CGAJZaKt+2UXsIV3xhkDFhq6Xv83VIj3T4Cju9VsIqFb5eOUUu7er0WpF0rqEqcVliPlq4Ja+eJ1Wl9HnD/5tUeM5yWDHynXTwSlMUCVvnaBtrFbIFhDR9pxWGEnNy6UEjiLRIrYkNMKr+QnzTesB8N8jvfPJoAMcESZAAi675PawbqYxK59ZG+sa/sX83G7GFl5MtB0lUhiyCJPdGUa63QfQw0J8X0dvkZCNcpsDWhbq9B+uu1GL1JS2Rr2uoYSwfIFUiyaQY8KniYlzYb2TyImEQZ7UYkTurIYVutjGJwNqr5KhrZb6flkt/t7fHe/rAScbhm/4lVQFYZYGggitnR6rh262CBl2ML53V1crhLzPjOQWu770y64mZBjf+NwWK84ikPsA0ei2/ph+oWnAkYZVbWVR47AOnLqDed95jJBL5rbAkeSe32MDTPG638pfiBRl/mvPdabZcQ== root@pve2
|
||||
|
||||
@@ -33,7 +33,8 @@ build pve2-lxc-root.pub \
|
||||
"$FRAG/admin-mobile.pub"
|
||||
|
||||
build horus-root.pub \
|
||||
"$FRAG/horus-vps-root.pub"
|
||||
"$FRAG/horus-vps-root.pub" \
|
||||
"$FRAG/host-pve2.pub"
|
||||
|
||||
build authorized_keys.all.pub \
|
||||
"$FRAG"/*.pub
|
||||
|
||||
@@ -0,0 +1,75 @@
|
||||
# tmux — OSC-11-Leak in Windows Terminal (SSH)
|
||||
|
||||
**Stand:** 2026-06-28 · **Status:** gelöst (verifiziert)
|
||||
**Issue:** [../issues/2026-06-28-tmux-osc11-windows-terminal-leak.md](../issues/2026-06-28-tmux-osc11-windows-terminal-leak.md)
|
||||
|
||||
---
|
||||
|
||||
## Symptom
|
||||
|
||||
Beim Start von `tmux` oder nach SSH erscheint Text im Prompt, z. B.:
|
||||
|
||||
```
|
||||
11;rgb:0c0c/0c0c/0c0c
|
||||
```
|
||||
|
||||
**Keine Schadsoftware** — das ist eine **Terminal-Kontrollsequenz**, die fälschlich als Tastatureingabe landet.
|
||||
|
||||
---
|
||||
|
||||
## Ursache
|
||||
|
||||
| Teil | Was passiert |
|
||||
|------|----------------|
|
||||
| **OSC 11** | tmux fragt die Hintergrundfarbe des Terminals ab |
|
||||
| **Antwort** | Terminal antwortet z. B. `rgb:0c0c/0c0c/0c0c` (dunkles Grau) |
|
||||
| **Leak** | Bei SSH-Latenz + zu kurzem `escape-time` bricht tmux die Sequenz ab → Rest landet in `stdin`/Prompt |
|
||||
|
||||
Häufig bei: **Windows Terminal** ↔ **SSH** ↔ **tmux** auf Linux-Hosts.
|
||||
|
||||
---
|
||||
|
||||
## Fix (`~/.tmux.conf`)
|
||||
|
||||
Zwei Maßnahmen (beide auf **pve1**, **pve2**, **Horus** deployed):
|
||||
|
||||
```bash
|
||||
# Ansatz 1: tmux mehr Zeit für Escape-Sequenzen (war auf pve2 nur 10 ms)
|
||||
set -sg escape-time 50
|
||||
|
||||
# Ansatz 2: OSC-11-Hintergrundabfrage deaktivieren (Fallback)
|
||||
set -as terminal-overrides ',*:O11=@'
|
||||
```
|
||||
|
||||
Referenz-Config im Repo: [tmux.conf](tmux.conf)
|
||||
|
||||
**Nach Änderung tmux neu laden:**
|
||||
|
||||
```bash
|
||||
tmux kill-server # alle Sessions beenden
|
||||
# oder in laufender Session:
|
||||
tmux source-file ~/.tmux.conf
|
||||
```
|
||||
|
||||
Falls Leak bleibt: `escape-time` schrittweise auf **100** erhöhen (nicht >500 — spürbarer ESC-Lag in vim).
|
||||
|
||||
---
|
||||
|
||||
## Deploy-Stand
|
||||
|
||||
| Host | Pfad | Anmerkung |
|
||||
|------|------|----------|
|
||||
| pve1 `192.168.10.5` | `/root/.tmux.conf` | identisch mit Referenz |
|
||||
| pve2 `192.168.10.4` | `/root/.tmux.conf` | `escape-time` von 10→50 |
|
||||
| Horus `10.1.1.1` | `/root/.tmux.conf` | neu angelegt |
|
||||
|
||||
---
|
||||
|
||||
## Referenzen
|
||||
|
||||
| Thema | Doc |
|
||||
|-------|-----|
|
||||
| pve1 Host | [../pve1/infrastructure-host.md](../pve1/infrastructure-host.md) |
|
||||
| pve2 Host | [../pve2/infrastructure-host.md](../pve2/infrastructure-host.md) |
|
||||
| Horus | [../horus/README.md](../horus/README.md) |
|
||||
| Fish (pve1/pve2) | pve1 `fish-setup.yml`, pve2 `/root/.config/fish/` von pve1 |
|
||||
@@ -0,0 +1,45 @@
|
||||
# Referenz: /root/.tmux.conf auf pve1, pve2, Horus
|
||||
# Stand: 2026-06-28 — inkl. Windows-Terminal OSC-11-Fix
|
||||
|
||||
# --- Basics ---
|
||||
set -g mouse on
|
||||
set -g history-limit 50000
|
||||
set -sg escape-time 50
|
||||
|
||||
# --- True color (btop, htop, colored scripts) ---
|
||||
set -g default-terminal "tmux-256color"
|
||||
set -ag terminal-overrides ",xterm-256color:RGB"
|
||||
set -as terminal-overrides ',*:O11=@'
|
||||
set -ag terminal-overrides ",*256col*:RGB"
|
||||
|
||||
# --- Window / pane numbering ---
|
||||
set -g base-index 1
|
||||
setw -g pane-base-index 1
|
||||
set -g renumber-windows on
|
||||
|
||||
# --- Pane splitting (same directory) ---
|
||||
bind | split-window -h -c "#{pane_current_path}"
|
||||
bind - split-window -v -c "#{pane_current_path}"
|
||||
unbind '"'
|
||||
unbind %
|
||||
|
||||
# --- Pane navigation without prefix ---
|
||||
bind -n M-Left select-pane -L
|
||||
bind -n M-Right select-pane -R
|
||||
bind -n M-Up select-pane -U
|
||||
bind -n M-Down select-pane -D
|
||||
|
||||
# --- Window jump without prefix ---
|
||||
bind -n M-1 select-window -t 1
|
||||
bind -n M-2 select-window -t 2
|
||||
bind -n M-3 select-window -t 3
|
||||
bind -n M-4 select-window -t 4
|
||||
bind -n M-5 select-window -t 5
|
||||
|
||||
# --- Activity monitoring ---
|
||||
setw -g monitor-activity on
|
||||
set -g visual-activity on
|
||||
|
||||
# --- Status bar ---
|
||||
set -g status-left "[#S] "
|
||||
set -g status-right "#H %H:%M"
|
||||
Reference in New Issue
Block a user