Mulai ssh di conemu

8

bagaimana cara mengatur pintasan di conEmu untuk secara otomatis membuka tab baru dengan cygwin, dan secara otomatis memulai perintah yang diberikan (katakanlah, ssh)?

Car981
sumber

Jawaban:

6

Jadi mari kita mulai dengan cara meluncurkan cygwin bash di tab baru. Dalam contoh saya, saya menggunakan cygwin bash msys-git karena itulah yang telah saya instal:

Tugas Git Bash

Perintah yang saya gunakan adalah:

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

Jadi itu shell interaktif. Jika saya ingin menjalankan ls dari dalam cygwin bash, saya bisa menggunakannya sh -exec sebagai gantinya 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>

Jadi, Anda mungkin dapat memulai ssh dari cygwin bash dengan sesuatu seperti:

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

Anda mungkin harus bermain dengan tanda kutip. Saya sarankan melihat tugas conemu saya untuk referensi.

Justin Dearing
sumber
3
cmd /c sebenarnya berlebih, kecuali Anda perlu mengatur variabel lingkungan apa pun sebelum menjalankan ssh.exe. Jika Anda tidak perlu mengatur lingkungan - Anda dapat menjalankan ssh.exe secara langsung, tanpa "cmd / c".
Maximus
Jika saya menjalankannya langsung, itu tidak melampirkan ke conemu sekalipun. Apa yang harus saya lakukan ?
Car981
1
@ Car981 Anda perlu menambahkan itu ke tugas seperti ini . Lihat juga -new_console
Justin Dearing
2
Saya harus menggunakan bash.exe -c "ssh ..."daripadabash.exe --exec "ssh ..."
Michael
3

Ini adalah cara yang paling tidak terlihat untuk menjalankan tugas SSH dan menjalankan ConEmu. Membutuhkan konfigurasi yang sedikit lebih banyak, tetapi pada akhirnya layak dilakukan.

Buat kunci ssh

Langkah-langkah dari jawaban yang sangat baik di sini: /server/241588/how-to-automate-ssh-login-with-password . ssh-keygen akan menanyakan beberapa pertanyaan. Jawaban standarnya baik-baik saja. Jika Anda ingin menggunakan kata sandi kosong, itu bagus juga. Amankan keyfile Anda. Ganti id, server dan kata sandi dengan kredensial Anda.

$ ssh-keygen -t rsa -b 2048

$ ssh-copy-id id@server password

$ ssh id@server

Tambahkan tugas untuk ssh

  • Buka pengaturan ConEmu, pergi ke Startup-> Tugas.
  • Klik +
  • Beri nama tugas sesuatu (saya menggunakan "ssh")
  • Di kotak teks besar untuk Perintah, Tab, Dll, letakkan perintah baru:
    • ""C:\Program Files\Cmder\vendor\git-for-windows\bin\sh.exe" -exec "/usr/bin/ssh id@server""
    • Ganti id dan server dengan milik Anda

(Opsional) Tetapkan tugas sebagai tugas default

  • Beralih ke jendela pengaturan induk "Startup"
  • Dalam "Opsi mulai" pilih tombol radio "Tugas yang ditentukan"
    • Dari dropdown, pilih nama tugas Anda (ssh dalam kasus saya)
  • Simpan Pengaturan

Jika Anda melakukan semuanya dengan benar, konsol Anda akan mulai dan ssh masuk ke server pilihan Anda, tidak perlu kata sandi karena Anda menggunakan kunci pas.

codepringle
sumber
2

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

-c akan menjalankan perintah string berikut secara otomatis setelah masuk untuk Anda

meffect
sumber
Jawaban lain untuk pertanyaan ini cukup ekspansif, dapatkah Anda menjelaskannya sama sekali?
bertieb
menambahkan lagi
meffect