You are not logged in.
Context: For years, I've been using evilvte with 4 configurations to visibly distinguish my terminals (yellow on black for "normal", yellow on red for "root", white on blue for "ssh", and white on purple for "ssh-root"). The terminal environments have matching icons to distinguish them on the taskbar as well.
I have a small helper script using zenity to provide a selection dialog of my local network hosts. This snippet shows the ssh / sudo commands in use.
case $1 in
local ) evilvte ;;
root ) evilvte.$1 -e sudo --login su ;;
ssh ) evilvte.$1 -e ssh -t $(get_host) ;;
ssh-root ) evilvte.ssh.root -e ssh -t $(get_host) sudo su ;;
My ~/.ssh/config has the options for each of my 4 current networked systems. (That way I can use the same config on each system.)
This setup has worked since at least September 2019. (That's the earliest archive copy of the script on my primary system.)
The issue: After updating 2 systems yesterday, I ssh'd from my main system to the media server. To my surprise, the $PS1 prompt was preceded by several strings of diagnostic info, to wit:
]3008;start=cdf965fe-740d-4f8d-9b7b-7fff2ff4cd73;user=myuser;hostname=myhost;machineid=b47b9cab591c47b287b15183a1e0a9ad;bootid=3e78bd2c-e51d-4f13-9c5e-541b0dabb783;pid=60793;type=shell;cwd=/home/myuser[myhost]
(The first character appears to be a unicode glyph for 001B, or ESC.) Also, I substituted "myuser" and "myhost" for the actual values. (basic security through obfuscation)
Additional symptoms/diagnostics:
This string only appears on a normal user ssh, e.g. ssh -t myremote. The equivalent ssh-root does not include this string: it prompts for my sudo password and drops to a normal $PS1 prompt. It does not appear on either "local" or "root" shells.
The string is repeated before each prompt, but the value of $PS1 is unchanged from what I set in my .bashrc.
If I launch a new shell from within this ssh shell, the new shell does not include the diagnostic text, just the normal $PS1 prompt.
This string does not appear when I ssh to either of the 2 systems that were not yet updated. I get the normal "Last login" string, then the normal $PS1 prompt.
The string does appear if I ssh from myhost back to myhost.
I get the same behavior whether I start the ssh session via command line or via my selection dialog. (So the problem isn't in my simple script...)
Using different terminals (xterm, qterminal, mate-terminal) worked normally and did not display the diagnostic string. I recompiled evilvte, but get the same results.
The only ssh upgrades were openssh (10.0p1-4 to 10.2p1-1) and libssh (0.11.2-1 to 0.11.3-1). No pacnew files were created, so I didn't revise any existing configuration files.
I attempted using the ssh -v options, but no relevant debug messages appeared.
Ideally, I'd like to track down the source of this text to eliminate it if possible.
Yes, I realize that the "easy" fix seems to be to use a different terminal. However, that would result in a significant loss of functionality which I depend on when maintaining all 4 systems. I've gone through about half of the terminals in the "List of Applications", but so far, none make the grade. Features I "need" are:
provided by an Arch package (I'm willing to use AUR or source if the code is stable and mature.)
easily supports multiple configurations (mate-terminal failed here because dconf keys are not easily portable. For evilvte, the configuration is stored in the executable and I can quickly compile 4 versions by symlinking to config.h...)
can use a user-defined icon for its titlebar and taskbar (mate-terminal failed here too, which is a shame. I had planned to switch to mate-terminal and actually have the relevant commands in the script... commented out, but they're there...)
supports transparency or pseudo-transparency (pseudo-transparency is better, because it uses the desktop background, not all the underlying windows)
The questions:
Does anyone know the source of the diagnostic strings?
Can anyone suggest other steps which may help me identify the issue?
Can anyone suggest an alternate terminal that meets my criteria above? (I'm going to continue exploring the "List of Applications", but I might inadvertently dismiss a viable option based on its overview.)
(I do have a kludge for now, but it's ugly: evilvte -e ssh myremote evilvte. This results in a second terminal with the normal $PS1. The first terminal is completely empty and closes immediately after the second terminal exits. The diagnostic strings never appear in either terminal.)
Oh, I should note that I'm primarily using LXQt, but include apps from other desktops as suit my needs...
Thanks in advance!!!
Any technology distinguishable from magic is insufficiently advanced.
- Cleon, _Foundation's Fear_
Offline
Does anyone know the source of the diagnostic strings?
Using different terminals (xterm, qterminal, mate-terminal) worked normally and did not display the diagnostic string. I recompiled evilvte, but get the same results.
Can anyone suggest other steps which may help me identify the issue?
The only ssh upgrades were
What about the non-ssh updates? The change seems to come from evilvte?
The string is repeated before each prompt, but the value of $PS1 is unchanged from what I set in my .bashrc.
What is your PS1? (the data might come as expansion of some other value?)
urxvt easily meets your requirements (using a patched version you can also have different background images to indicate the terminal) but for the "config" part - you'd have to discriminate the behavior w/ config switches on invocation.
alacritty might be interesting, but I don't think you can set different icons
Online