Öffnen Sie eine SSH-Sitzung mit dem definierten Titel über die Befehlszeile

Öffnen Sie eine SSH-Sitzung mit dem definierten Titel über die Befehlszeile

Ich habe ein kleines Problem mit der Ausführung von Putty (von der Kommandozeile) mit-MArgument. Bitte helfen Sie mir dabei oder schlagen Sie einen besseren Weg vor, wenn Sie einen kennen :)

Der Befehl (von „Ausführen“):

putty -ssh user@machine -pw password -m C:\test.txt

Befehl „test.txt“:

PROMPT_COMMAND='echo -ne "\033]0;'$( ifconfig | head -2 | tail -1 | awk '{print $2}')'\007"'

Das Problem:
Es öffnet die Sitzung und schließt sie sofort wieder

Was soll es tun: Öffnen Sie eine SSH-Sitzung von der Befehlszeile mit dem definierten Titel

Danke.

Antwort1

Ich glaube, Sie haben versucht, etwas Ähnliches zu tun wie indiese Antwort. Die Sache ist jedoch, dass die dort bereitgestellten Beispielbefehle von der Datei auf dem Server ausgeführt werden sollen.

Sie können nicht als Befehl(e) zur Ausführung mit dem Schalter -m übergeben werden. Dieser Schalter von PuTTYist zu imitierendas Verhalten des Linux-Befehlszeilen-SSH-Clients:

ssh user@foo command

Auf diese Weise meldet sich ssh userbeim fooServer an, wird commanddort ausgeführt und beendet sich dann. Mit -m scheint PuTTY genau dasselbe zu tun.

Mein Vorschlag

besteht darin, ein Skript auf dem Remote-Server vorzubereiten und PuTTY auf eine andere Weise zu konfigurieren. Zunächst müssen Sie eine Datei mit den Befehlen erstellen, die Sie nach der Anmeldung ausführen möchten. Nennen wir sie.title

cat > ~/.title

Geben Sie dann einfach ein, was Sie brauchen, oder kopieren Sie es und fügen Sie es ein. Drücken Sie anschließend Strg+D. Lassen Sie uns zunächst nur das Festlegen des Titels testen:

echo -ne "\033]0;PuTTY\007"

Sie können das oben genannte sogar direkt im Terminal ausprobieren. Wenn der Fenstertitel von PuTTY nicht geändert wird, ist Ihre Distribution wahrscheinlich bereits eingerichtetStandardvariable PROMPT_COMMAND. Sie können dies bestätigen, indem Sie die folgenden Befehle im Terminal ausführen

echo $PROMPT_COMMAND
unset PROMPT_COMMAND
echo -ne "\033]0;PuTTY test\007"

Der Schlüssel besteht darin, den aktuellen Wert der Variablen aufzuheben PROMPT_COMMAND. Anschließend sollte der letzte Befehl den Fenstertitel auf setzen PuTTY test.

Meine Lösung

Das funktioniert bei mir, indem ich eine Sitzung in PuTTY vorbereite, mitFeld „Remote-Befehl“ in der GUIeinstellen:

/bin/bash --rcfile ~/.title

Denken Sie daran, den Namen dieser Sitzung anzugeben (z. B. „SessionName“) und auf der ersten Seite der PuTTY-Einstellungen neben der Liste „Gespeicherte Sitzungen“ auf die Schaltfläche „Speichern“ zu klicken :)

Dann können Sie PuTTY starten und es anweisen, diese Sitzung zu laden

putty -load SessionName -l user -pw password

Ja, es ist traurig, aber es gibt kein Befehlszeilen-Äquivalent zum Feld „Remote-Befehl“ für eine gespeicherte Sitzung. Deshalb muss man all diese Hürden überwinden :(

TL;DR-Version

Vorausgesetzt, Sie führen alle diese Schritte richtig aus, sollte alles reibungslos funktionieren:

  • ~/.titleSkript auf dem Remotecomputer erstellen
  • Bereiten Sie eine Sitzung mit einem Remote-Befehl vor, der Bash ausführt.~/.title
  • Sagen Sie PuTTY, dass es die vorbereitete Sitzung beim Start laden soll, und geben Sie dabei Benutzer und Passwort an.

Profi-Tipp

Anstatt Passwörter im Klartext in der Befehlszeile (und möglicherweise in Skripten) anzugeben, sollten Sie lernen, SSH-Schlüssel zu verwenden und „Pageant“ (PuTTY-Authentifizierungsagent) in der Windows-Taskleiste auszuführen.

Antwort2

Ich habe momentan kein SSH, um es zu testen, aberhttp://www.derkeiler.com/Newsgroups/comp.security.ssh/2012-04/msg00005.html „Wenn Sie nur möchten, dass das Fenster für Sie geöffnet bleibt, fügen Sie sleep 10 am Ende Ihres Skripts ein, um 10 Sekunden zu warten. Wenn Sie die Shell verwenden möchten, verwenden Sie sie exec /bin/basham Ende. Shai“

zwei weitere Links, die einige Einblicke bieten.

PuTTY: Führen Sie nach der Anmeldung einen Remote-Befehl aus und lassen Sie die Shell weiterlaufen

Wie wähle ich aus, was in der Titelleiste von PuTTY unter Linux angezeigt wird?

Hinzugefügt von barlop

Im Folgenden wird kein Putty verwendet, sondern OpenSSH in Cygwin. Die a.aDatei könnte ls oder Befehle zum Ändern der Eingabeaufforderung enthalten. Sie ist lokal.

$ ssh 127.0.0.1 "cat | bash" < a.a

bezogen, siehe Antwort, die ich gerade gepostet habe -https://unix.stackexchange.com/questions/87405/wie-kann-ich-ein-lokales-skript-auf-remote-machine-ausführen-und-arguments-einbinden/208952#208952

verwandte Informationen