Uruchom ssh w conemu

8

jak mogę ustawić skrót w conEmu, aby automatycznie otworzyć nową kartę w cygwin i automatycznie uruchomić dane polecenie (powiedzmy ssh)?

Car981
źródło

Odpowiedzi:

6

Zacznijmy więc od tego, jak uruchomić cygwin bash w nowej karcie. W moim przykładzie używam bash cygwin msys-git, ponieważ to właśnie zainstalowałem:

Zadanie Git Bash

Polecenie, którego używam to:

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

To jest interaktywna powłoka. Jeśli chcę uruchomić ls z wnętrza cygwin bash, mogę użyć sh -exec zamiast sh --login -iTo wyglądałoby tak:

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>

Więc prawdopodobnie możesz zacząć ssh od cygwin bash z czymś takim jak:

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

Być może będziesz musiał grać z cytatami. Proponuję spojrzeć na moje zadania conemu w celach informacyjnych.

Justin Dearing
źródło
3
cmd /c jest w rzeczywistości nadmiarem, chyba że musisz uruchomić jakieś zmienne środowiskowe przed uruchomieniem ssh.exe. Jeśli nie musisz konfigurować środowiska - możesz uruchomić ssh.exe bezpośrednio, bez „cmd / c”.
Maximus
Jeśli uruchomię go bezpośrednio, to jednak nie przywiąże się do conemu. Co powinienem zrobić ?
Car981
1
@ Car981 Musisz dodać to do takiego zadania . Zobacz także -new_console
Justin Dearing
2
Musiałem użyć bash.exe -c "ssh ..."zamiastbash.exe --exec "ssh ..."
Michael
3

Jest to najbardziej pozorny sposób na uruchomienie zadania SSH przez ConEmu. Wymaga nieco większej konfiguracji, ale w końcu warto.

Wygeneruj klucz ssh

Kroki od doskonałej odpowiedzi tutaj: /server/241588/how-to-automate-ssh-login-with-password . ssh-keygen zada ci kilka pytań. Domyślne odpowiedzi są w porządku. Jeśli chcesz iść z pustym hasłem, to też dobrze. Po prostu przechowuj swój plik klucza w bezpiecznym miejscu. Zastąp identyfikator, serwer i hasło danymi uwierzytelniającymi.

$ ssh-keygen -t rsa -b 2048

$ ssh-copy-id id@server password

$ ssh id@server

Dodaj zadanie dla ssh

  • Otwórz ustawienia ConEmu, przejdź do Startup-> Zadania.
  • Kliknij +
  • Nazwij coś czymś (użyłem „ssh”)
  • W dużym polu tekstowym Komendy, Tab, Itp, umieść nowe polecenie:
    • ""C:\Program Files\Cmder\vendor\git-for-windows\bin\sh.exe" -exec "/usr/bin/ssh id@server""
    • Zastąp identyfikator i serwer własnym

(Opcjonalnie) Ustaw zadanie jako zadanie domyślne

  • Przejdź do okna ustawień nadrzędnych „Uruchamianie”
  • W „Opcjach uruchamiania” wybierz przycisk opcji „Określone nazwane zadanie”
    • Z rozwijanego menu wybierz nazwę swojego zadania (w moim przypadku ssh)
  • Zapisz ustawienia

Jeśli wszystko zrobiłeś poprawnie, konsola uruchomi się i ssh na wybranym serwerze, bez hasła, ponieważ używasz klucza dostępu.

codepringle
źródło
2

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

-c wykona następujące polecenie łańcuchowe automatycznie po zalogowaniu się za Ciebie

skuteczny
źródło
Pozostałe odpowiedzi na to pytanie są dość obszerne, czy możesz w ogóle to rozwinąć?
bertieb
dodał jeszcze kilka
skuteczny