Starten Sie ssh in conemu

8

Wie kann ich in conEmu eine Verknüpfung festlegen, um automatisch eine neue Registerkarte mit cygwin zu öffnen und einen bestimmten Befehl (z. B. ssh) automatisch zu starten?

Car981
quelle

Antworten:

6

Beginnen wir also damit, wie Sie Cygwin Bash in einem neuen Tab starten. In meinem Beispiel verwende ich die Cygwin-Bash von msys-git, weil ich Folgendes installiert habe:

Git Bash Aufgabe

Der Befehl, den ich benutze, ist:

% systemroot% \ SysWOW64 \ cmd.exe / c "" C: \ Programme (x86) \ Git \ bin \ sh.exe "--login -i"

Das ist also eine interaktive Shell. Wenn ich ls innerhalb von Cygwin Bash ausführen möchte, kann ich sh -exec stattdessen Folgendes verwenden : sh --login -iEs würde folgendermaßen aussehen:

C:\Users\JDearing>"C:\Program Files (x86)\Git\bin\sh.exe" -exec "/bin/ls c:\\"
+ /bin/ls c:
$Recycle.Bin               VC_RED.MSI     install.exe
BOOTSECT.BAK               VC_RED.cab     install.ini
Chocolatey                 Windows        install.res.1028.dll
Documents and Settings     boot           install.res.1031.dll
EntLib41Src                bootmgr        install.res.1033.dll
Intel                      eula.1028.txt  install.res.1036.dll
MSOCache                   eula.1031.txt  install.res.1040.dll
PerfLogs                   eula.1033.txt  install.res.1041.dll
Program Files              eula.1036.txt  install.res.1042.dll
Program Files (x86)        eula.1040.txt  install.res.2052.dll
ProgramData                eula.1041.txt  install.res.3082.dll
Recovery                   eula.1042.txt  old_machine
RiskWorks                  eula.2052.txt  pagefile.sys
SWSetup                    eula.3082.txt  profiles
SafeBoot.fs                globdata.ini   sysinternals
SafeBoot.rsv               hiberfil.sys   vcredist.bmp
System Volume Information  ilspy
Users                      inetpub

C:\Users\JDearing>

Sie können ssh also wahrscheinlich von cygwin bash aus starten mit etwas wie:

% systemroot% \ SysWOW64 \ cmd.exe / c "" C: \ Programme (x86) \ Git \ bin \ sh.exe "-exec" / usr / bin / ssh [email protected] ""

Möglicherweise müssen Sie mit Anführungszeichen spielen. Ich würde vorschlagen, meine Conemu-Aufgaben als Referenz zu betrachten.

Justin Dearing
quelle
3
cmd /c ist in der Tat übermäßig, es sei denn, Sie müssen Umgebungsvariablen einrichten, bevor Sie ssh.exe ausführen. Wenn Sie keine Umgebung einrichten müssen, können Sie ssh.exe direkt ohne "cmd / c" ausführen.
Maximus
Wenn ich es direkt starte, hängt es jedoch nicht an conemu. Was sollte ich tun ?
Car981
1
@ Car981 Das musst du einer solchen Aufgabe hinzufügen . Schauen Sie sich auch -new_console
Justin Dearing
2
Ich musste bash.exe -c "ssh ..."eher alsbash.exe --exec "ssh ..."
Michael
3

Dies ist der scheinbar einfachste Weg, um eine SSH-Aufgabe über ConEmu zum Laufen zu bringen. Benötigt etwas mehr Konfiguration, aber es lohnt sich am Ende.

Generieren Sie einen SSH-Schlüssel

Schritte von einer ausgezeichneten Antwort hier: /server/241588/how-to-automate-ssh-login-with-password . ssh-keygen wird Ihnen einige Fragen stellen. Die Standardantworten sind in Ordnung. Wenn Sie mit einer leeren Passphrase arbeiten möchten, ist das auch in Ordnung. Bewahren Sie einfach Ihre Schlüsseldatei auf. Ersetzen Sie ID, Server und Passwort durch Ihre Anmeldeinformationen.

$ ssh-keygen -t rsa -b 2048

$ ssh-copy-id id@server password

$ ssh id@server

Fügen Sie eine Aufgabe für ssh hinzu

  • Öffnen Sie die ConEmu-Einstellungen und gehen Sie zu Startup-> Tasks.
  • Klicken Sie auf +
  • Nennen Sie Aufgabe etwas (ich habe "ssh" verwendet)
  • Geben Sie in das große Textfeld für Befehle, Registerkarten usw. einen neuen Befehl ein:
    • ""C:\Program Files\Cmder\vendor\git-for-windows\bin\sh.exe" -exec "/usr/bin/ssh id@server""
    • Ersetzen Sie ID und Server durch Ihre eigene

(Optional) Legen Sie die Aufgabe als Standardaufgabe fest

  • Wechseln Sie zum übergeordneten Einstellungsfenster "Startup".
  • Aktivieren Sie unter "Startoptionen" das Optionsfeld "Angegebene benannte Aufgabe"
    • Wählen Sie aus der Dropdown-Liste den Namen Ihrer Aufgabe aus (in meinem Fall ssh).
  • Einstellungen speichern

Wenn Sie alles richtig gemacht haben, wird Ihre Konsole gestartet und auf dem Server Ihrer Wahl ssh, ohne dass ein Kennwort erforderlich ist, da Sie einen Passkey verwenden.

Codepringle
quelle
2

C:\cygwin64\bin\bash.exe --login -i -c "ssh myUser@myServer"

Das -c führt den folgenden Zeichenfolgenbefehl automatisch aus, nachdem Sie sich für Sie angemeldet haben

Meffekt
quelle
Die anderen Antworten auf diese Frage sind ziemlich umfangreich. Können Sie das überhaupt näher erläutern?
Bertieb
fügte etwas mehr hinzu
meffect