it-swarm.com.de

Wie führe ich nach der Anmeldung einen Remote-Befehl in PuTTY aus und halte die Shell am Laufen?

Was ich versuche zu tun: Starten Sie eine PuTTY-Sitzung über die Befehlszeile, melden Sie sich bei der entfernten Maschine an und cd im angegebenen Verzeichnis.

PuTTY.exe -agent -ssh some.Host

Das öffnet eine Sitzung und ein Login mit meinem Standard-Login-Namen und meinem privaten Schlüssel.

echo cd /some/remote/path/ > c:/stuff/cmd.txt
PuTTY.exe -agent -ssh some.Host -m 'c:/stuff/cmd.txt'

Das öffnet eine Sitzung, meldet sich an, führt einen Befehl aus (in diesem Fall cd) und beendet .

Wie öffne ich eine Sitzung, melde mich an, cd und halte die Sitzung offen?

Hintergrund: Ich verwende Emacs unter Windows und bearbeite häufig Dateien auf entfernten Unix-Rechnern mit tramp & plink. Ich möchte einen Hotkey erstellen, der eine PuTTY-Sitzung für diesen Remotecomputer und Chdirs in das Verzeichnis dieser Datei öffnet. Keine große Sache auf der Emacs-Seite, aber ich bin fest mit PuTTY.

34

Der -m bewirkt, dass PuTTY den SSH-Server anweist, diese (n) Befehl (e) STATT einer Shell zu starten. Sobald Ihr Befehl beendet ist, ist auch die Sitzung beendet.

Wenn Sie die Shell nach dem Befehl cd ausführen möchten, müssen Sie sie explizit zu Ihrem cmd.txt hinzufügen, z.

cd /my/path ; /bin/bash

Auch der -m impliziert "nopty" ​​/ nicht interaktiver Modus. Um eine interaktive Shell zu verwenden, müssen Sie diese mit dem Schalter -t überschreiben.

PuTTY.exe -ssh example.com -m "c:\path\cmd.txt" -t

Alternativ können Sie KiTTY mit dem Schalter -cmd verwenden, der das tut, was Sie wollen (und keine temporäre Datei benötigt).

31
Martin Prikryl