SSH-Session hängt, da VPN-Verbindung unterbrach

Sloop

Well-Known Member
Hallo miteinander,

ich musste gerade folgendes feststellen. Ich habe mittels OpenVPN eine Verbindung zu einem Netzwerk aktiv gehabt. Parallel war ich mit ssh an einem dort befindlichen remote host eingeloggt und per vi in einer Konfigurationsdatei am Editieren. Nun hatte sich mein Router verabschiedet, und die OpenVPN-Verbindugn wurde unterbrochen. Ich hab noch 'ne Konsolenmeldung erhalten, dass was mit der Authentifizierung fehlgeschlagen hat, also bzgl. OpenVPN. Das Problem nun war: der gesamte Screen schien festgefroren. Da halt kein STRG+C, STRG+Z oder sonstwas. Klar konnte ich mit ALT-F2 auf n andres TTY schalten, aber mein aktuelles war nicht mehr nutzbar.

Gibts da einen Trick, in solch einem Falle trotzdem ncoh die Kontrolle zu erlangen? Erst nach ca. 3 Minuten erschien dann plötzlich mein Loginprompt wieder, weil wahrscheinlich erst dann die Verbindung resettet wurde.
 
Das mit dem ~ . bewirkt irgendwie nichts ??

Habs grad mit folgendem probiert, indem ich in meine /etc/ssh/ssh_config reingeschrieben habe:

Code:
Host *
ServerAliveCountMax=2
ServerAliveInterval=15
TCPKeepAlive=no

Dann sollte doch nach 30 sekunden in diesem Fall die Verbindung gekappt werden. Tut's aber nicht. Es dauert so ca. eine Minute oder noch länger (gefühlt).

Also hab ich dann mal folgendes versucht:
Code:
Host *
ServerAliveCountMax=10
ServerAliveInterval=1
TCPKeepAlive=no
Und damit wird so nach ca. 12 Sekunden der Kanal gekappt, wenn der Server nicht mehr erreichbar ist. Ich denke ich belasse es mal so ...
 
Zuletzt bearbeitet:
Ich habe SSH Sitzungen immer in einem eigenen Terminal, mit anderer Hintergrundfarbe, so tippt man nicht aus versehen ein Kommando ins falsche Terminal (die Idee stammt, wenn ich mich recht erinnere, von Dettus).

Entsprechend mache ich auch einfach das Terminal zu, wenn die Sitzung hängt.
 
Du redest aber jetzt von einem Terminalfenster innerhalb X, oder? Was wenn du nicht im X bist, sondern nur in der Konsole ?
 
Du redest aber jetzt von einem Terminalfenster innerhalb X, oder? Was wenn du nicht im X bist, sondern nur in der Konsole ?
Da hast du Recht, das habe ich übersehen.

~. funktioniert übrigens schon. Dafür müssen aber ein paar Voraussetzungen erfüllt sein. Entweder du hast nodeadkeys aktiviert oder du musst ~ Leerzeichen . tippen. Das ganze funktioniert auch nur am Zeilenanfang. Also musst du ggf. noch ein Enter davorsetzen (auch wenn es nicht gezeichnet wird).

Und wenn ein gewisses Risiko besteht, dass die Session nur hängt und nicht wirklich tot ist, würde ich vor das Enter noch ein CTRL-C setzen um sicherzugehen, dass ich nicht versehentlich einen unvollständigen Befehl bestätige.
 
...würde ich vor das Enter noch ein CTRL-C setzen um sicherzugehen, dass ich nicht versehentlich einen unvollständigen Befehl bestätige.

Wie wahr, wie wahr :zitter: damit hatte ich vor einigen Jahren auch schon schlechte Erfahrungen machen müssen, seitdem ist dieses STRG+C obligatorisch geworden :)

Mir ist erst gerade bewußt geworden, dass das ~ gar nicht unter meinem X funktioniert :ugly: in der Konsole hat das ~. funktioniert. Danke nochmals für diesen Hinweis, hab mir das auch in der ssh Beschreibung durchgelesen.

Hab daraufhin meine /etc/X11/xorg.conf wie folgt angepasst:
Code:
Section "InputDevice"
        Identifier  "Keyboard0"
#       Driver      "kbd"
        Driver      "keyboard"
        Option      "XkbModel" "pc105"   
        Option      "XkbLayout" "de"   
        Option      "XkbVariant" "nodeadkeys"   
EndSection
und neu gestartet. Hat jedoch nicht geholfen. Was habe ich denn übersehen?
 
Hmm, was passiert wenn du einfach so (nicht in ssh) die ~ Taste drückst? Ich bin kein Fan von nodeadkeys, weil dann all' die Accents nicht mehr funktionieren. Das das hilft, war um ehrlich zu sein bloß eine Annahme meinerseits.
 
Im X wird statt dem ~ Zeichen ein Leerzeichen produziert, wenn ich ich ~ eingebe. Wie gesagt, in der Konsole funktioniert meine Tastatur so wie sie soll, bloss im X nicht :)
 
Hmm, was benutzt du denn für einen Windowmanager, die können da prinzipiell rein pfuschen.

Mit setxkbmap kannst du zur Laufzeit das Tastaturlayout anpassen. Probier das mal, wenn es dann klappt pfuscht irgend ein anderes Programm da rein.
 
probier mal die ENTF (DEL) Taste. Die hilft bei meinem E-term unter X und ich glaube, mit dem KDE3 Konsole musste ich diese Taste doppelt drücken, um ~zu bekommen. Keine Ahnung, ob es dafür eine conf gibt.
Die unterschiedlichen Farben des Terminals (also eines Programmes unter X) setze ich auch ein ;-)
Manchmal nicht ganz konsequent. Weil ich nur wenige Rechner per ssh erreiche, erkenne ich die auch immer gut am Namen, bzw dem Prompt, welchen ich mir entsprechend gestalte. Da hat der Nutzername unterschiedliche Farben und zum Teil auch auffällige bunte Hintergrundfarben.
 
Sagtmal, gibts so was wie ~. das im SSH-Client implementiert ist, auch für TELNET ? 'man telnet' sagt mir:

When in rlogin mode, a line of the form ~. disconnects from the remote host; ~ is the telnet escape character. [...]

aber das geht leider nicht wie es bei ssh-Verbindungen einwandfrei funktioniert. Any clues?

PS: Ich bin in der Konsole, mit richtigem Tastaturlayout, wo mein ~ Zeichen funktioniert.
 
Und wenn an nicht im rlogin-Mode ist, benötigt man ~^] um zum Prompt zu kommen. Da kann man dann die Session abschießen. :)
 
Funzt leider noch nicht. In der manpage von telnet hab ich das auch gefunden, was du mir geschrieben hattest. Woran könnte es deiner Meinung nach liegen, dass ~^] nicht funzt? ich verwende nodeadkeys und wenn ich in meiner shell das tilde-Zeichen (~) eingebe, dann erscheint das sofort. Das selbe auch mit dem Dach-Symbol, und die eckige Klammer rechts sowieso.

Leider funktioniert diese Sequenz nicht in einer telnet-session. Any clues?
 
Wenn du nur "telnet" eingibst, bist du im interaktiven Modus, den du auch mit der Tastaturkombination erreicht hast.
Schau mal in die Manpage von telnet, da sollte alles drin stehen.
 
Zurück
Oben