8

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

3 ответа3

6

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

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

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

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

Шаги от отличного ответа здесь: https://serverfault.com/questions/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 на выбранный вами сервер, пароль не требуется, поскольку вы используете пароль.

1

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .