Gibt es eine Möglichkeit, alle SSH-Verbindungen zu beenden und PuTTY in "One Shot" zu schließen? Ich arbeite unter Windows 7 und verwende PuTTY, um verschiedene Linux-Hosts mit SSH zu verbinden.
Ein Beispiel für meine Arbeitsweise:
SSH to host1 with PuTTY...
banjer@host1:~> #...doin some work...ooh! need to go check something on host8...
banjer@host1:~> ssh host8
banjer@host8:~> #...doin some work...OK time for lunch. lets close putty...
banjer@host8:~> exit
banjer@host1:~> exit
Putty closes.
Wie kommt man von host8 zu PuTTY auf einmal? Manchmal finde ich mich bis zu 5 oder 10 Hosts tief. Mir ist klar, dass ich auf das X klicken kann, um das PuTTY-Fenster zu schließen, aber ich möchte mithilfe des Befehls exit sicherstellen, dass meine SSH-Verbindungen ordnungsgemäß geschlossen werden. Mir ist auch klar, dass ich nach Tipps frage, wie ich die Faulheit steigern kann. Ich schreibe es einfach als "wie kann ich effizienter sein".
ctrl+d
mehrmals drücken ?Antworten:
Versuchen Sie es mit der
ssh
Escape-Sequenz für den Verbindungsabbau.ssh
Geben Sie in der Sitzung~.
(Tilde-Punkt) ein. Sie werden die Zeichen nicht sehen, wenn Sie sie eingeben, aber die Sitzung wird sofort beendet.Von
man 1 ssh
quelle
~.
einen Alias oder eine Funktion einfügen? Nur um es leicht zu merken, wie der Nameexitall
. Jetzt bitte ich um viel zu viel :). Ich habe ein paar Dinge ausprobiert,~/.bashrc
aber bekommen-bash: ~.: command not found
. Ich nehme an, Bash sieht es als String und nicht als Escape-Sequenz, die direkt von der Tastatur kommt.ctrl+d
Lösung auch, aber dies beantwortet meine Frage direkter. Vielen Dank an alle.~.
, es wird vonssh
selbst gehandhabt .ssh
Client benötigt diese Technik, da es sich um eine CLI handelt. PuTTY ist eine GUI-Anwendung, und es gibt weitaus benutzerfreundlichere Möglichkeiten, dies auf einer GUI zu tun.Drücken CtrlDSie einfach und Sie werden dort abgemeldet, wenn Sie die Strg-Taste gedrückt halten und "d" drücken, bis das Fenster verschwindet.
quelle
EOT
. Und sogarbash
wird es in der Mitte einer Befehlszeile ignorieren. Probieren Sie es aus: Geben Sie einen einzelnen Buchstaben ein und versuchen Sie esCtrl-D
.logout
.Einfach PuTTY schließen. ( Alt+ F4standardmäßig IIRC.)
quelle
Eine weitere Möglichkeit ist es,
function
fürssh
:Leider wird die Verbindung auch immer getrennt und die Abmeldung von der Konsole erfolgt, nachdem Sie die Arbeit am Remote-System beendet haben.
Beachten Sie, dass Sie diese Funktion auf allen Ihren Servern ausführen müssen, da sonst dieser Hack nicht funktioniert. Übrigens können Sie die Funktion immer in ~ / .bashrc oder ~ / .whatever_shell_you_use_rc einfügen.
Es sieht ein bisschen schmutzig aus im Vergleich zu Uther's Way.
quelle
function
ist nicht POSIX - entfernen Sie einfach das Schlüsselwort und Sie müssen$@
richtig zitieren , oder Ihre Argumente werden nach der Wortteilung (schlecht) übergeben.Oder Sie können
exec
Ihren Shell-Prozess durch Folgendes ersetzen,ssh
wenn Sie zu einem anderen Host springen:5 Ebenen tief ist nicht schön, da der Verkehr durch alle anderen Server passieren wird. Aus diesem Grund empfehle ich nicht, nur PuTTY oder ssh (~.) Zu töten, da dies (abhängig von Ihrer Vorgehensweise) zu verwaisten Prozessen auf den Servern führen kann.
Besser versuchen, weniger "faul" zu sein. Klicken Sie mit der rechten Maustaste auf die Titelleiste von puttys, um eine neue Sitzung schnell zu öffnen. Wenn Sie einen "Standard" -Server haben und 1 Sprung von diesem akzeptieren, ist die Funktion "Sitzung duplizieren" sehr nützlich. Besonders bei Verwendung der Pubkey-Authentifizierung.
quelle
Wenn es Ihnen nichts ausmacht, ein wenig zu schreiben, können Sie dies tun.
Skript: myssh.sh
Aufruf über den Punktbefehl:
Wenn Sie eine Ebene verlassen möchten:
Wenn Sie alle beenden möchten:
quelle
Wenn Sie im Fenster des Putty-Terminals den Befehl logout eingeben, geschieht Folgendes für mich:
Schließt die ssh-Verbindung und beendet die Putty-Anwendung.
quelle
ssh host1
, und dann, vonhost1
, machtssh host8
. An diesem Punktlogout
würde a dasselbe tun wie derexit
Befehl, den sie bereits kennen - aussteigenhost8
und wieder eingebenhost1
.