Запустите ssh в conemu

8

Как я могу установить ярлык в conEmu для автоматического открытия новой вкладки с помощью Cygwin и автоматического запуска данной команды (скажем, ssh)?

Car981
источник

Ответы:

6

Итак, давайте начнем с того, как запустить Cygwin Bash в новой вкладке. В моем примере я использую msg-git Cygwin Bash, потому что это то, что я установил:

Git Bash Task

Команда, которую я использую:

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

Так что это интерактивная оболочка. Если я хочу запустить ls из cygwin bash, я могу использовать sh -exec вместо sh --login -iнего это будет выглядеть так:

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>

Так что вы, вероятно, можете запустить ssh из cygwin bash примерно так:

% systemroot% \ SysWOW64 \ cmd.exe / c "" C: \ Program Files (x86) \ Git \ bin \ sh.exe "-exec" / usr / bin / ssh Car981@linuxbox.domain.com ""

Возможно, вам придется играть с цитатами. Я бы посоветовал посмотреть на мои задачи по conemu для справки.

Джастин Даринг
источник
3
cmd /c на самом деле это избыточно, если только вам не нужно устанавливать какие-либо переменные среды перед запуском ssh.exe. Если вам не нужно настраивать среду - вы можете запустить ssh.exe напрямую, без «cmd / c».
Максим
Если я запускаю его напрямую, он не привязывается к conemu. Что мне делать ?
Car981
1
@ Car981 Вам нужно добавить это к такой задаче . Также посмотрите на -new_console
Джастин
2
Я должен был использовать, bash.exe -c "ssh ..."а неbash.exe --exec "ssh ..."
Майкл
3

Это самый очевидный способ запустить задачу SSH и запустить ее через ConEmu. Требуется немного больше конфигурации, но это того стоит.

Генерация ssh-ключа

Шаги от отличного ответа здесь: /server/241588/how-to-automate-ssh-login-with-password . ssh-keygen задаст вам несколько вопросов. Ответы по умолчанию в порядке. Если вы хотите использовать пустую фразу-пароль, это тоже хорошо. Просто храните ваш ключевой файл в безопасности. Замените id, сервер и пароль своими учетными данными.

$ ssh-keygen -t rsa -b 2048

$ ssh-copy-id id@server password

$ ssh id@server

Добавить задачу для ssh

  • Откройте настройки ConEmu, зайдите в Startup-> Tasks.
  • Нажмите +
  • Назовите задачу что-то (я использовал "ssh")
  • В большом текстовом поле для команд, вкладок и т. Д. Поместите новую команду:
    • ""C:\Program Files\Cmder\vendor\git-for-windows\bin\sh.exe" -exec "/usr/bin/ssh id@server""
    • Замените id и сервер своим

(Необязательно) Установить задачу как задачу по умолчанию

  • Переключиться в родительское окно настроек «Автозагрузка»
  • В разделе «Параметры запуска» выберите переключатель «Указанная именованная задача».
    • Из выпадающего списка выберите название вашей задачи (в моем случае ssh)
  • Сохранить настройки

Если вы все сделали правильно, ваша консоль запустится и перейдет по ssh на выбранный вами сервер, пароль не требуется, поскольку вы используете пароль.

codepringle
источник
2

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

-c автоматически выполнит следующую строковую команду после входа в систему

meffect
источник
Другие ответы на этот вопрос довольно обширны, можете ли вы остановиться на этом вообще?
Бертиб
добавил еще немного
эффект