Inizia ssh in conemu


8

come posso impostare un collegamento in conEmu per aprire automaticamente una nuova scheda con cygwin e avviare automaticamente un determinato comando (diciamo, ssh)?

Risposte:


6

Quindi iniziamo con come avviare cygwin bash in una nuova scheda. Nel mio esempio sto usando cygwin bash di msys-git perché è quello che ho installato:

Attività Git Bash

Il comando che uso è:

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

Quindi questa è una shell interattiva. Se voglio eseguire ls dall'interno di Cygwin Bash, posso usare al sh -exec posto di sh --login -iSarebbe simile a questo:

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>

Quindi probabilmente puoi iniziare ssh da cygwin bash con qualcosa del tipo:

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

Potrebbe essere necessario giocare con le virgolette. Suggerirei di guardare le mie attività conemu come riferimento.


3
cmd /c è in effetti in eccesso, a meno che non sia necessario impostare alcuna variabile di ambiente prima di eseguire ssh.exe. Se non è necessario configurare l'ambiente, è possibile eseguire ssh.exe direttamente, senza "cmd / c".
Massimo

Se lo eseguo direttamente, tuttavia non si collega a Conemu. Cosa dovrei fare ?
Car981,

1
@ Car981 Devi aggiungerlo a un'attività come questa . Guarda anche -new_console
Justin Dearing il

2
Ho dovuto usare bash.exe -c "ssh ..."piuttosto chebash.exe --exec "ssh ..."
Michael,

3

Questo è il modo più apparente per avviare un'attività SSH in esecuzione su ConEmu. Richiede un po 'più di configurazione, ma alla fine ne vale la pena.

Genera un tasto ssh

Passaggi dalla risposta eccellente qui: /server/241588/how-to-automate-ssh-login-with-password . ssh-keygen ti farà alcune domande. Le risposte predefinite vanno bene. Se vuoi andare con una passphrase vuota, va bene lo stesso. Tieni il tuo file di chiavi al sicuro. Sostituisci ID, server e password con le tue credenziali.

$ ssh-keygen -t rsa -b 2048

$ ssh-copy-id id@server password

$ ssh id@server

Aggiungi un'attività per ssh

  • Apri le impostazioni di ConEmu, vai su Avvio-> Attività.
  • Fai clic su +
  • Nome attività qualcosa (ho usato "ssh")
  • Nella grande casella di testo per Comandi, Tab, Etc, inserisci un nuovo comando:
    • ""C:\Program Files\Cmder\vendor\git-for-windows\bin\sh.exe" -exec "/usr/bin/ssh id@server""
    • Sostituisci id e server con i tuoi

(Facoltativo) Imposta l'attività come attività predefinita

  • Passa alla finestra di impostazione principale "Avvio"
  • In "Opzioni di avvio" selezionare il pulsante di opzione "Attività con nome specificato"
    • Dal menu a discesa, seleziona il nome della tua attività (ssh nel mio caso)
  • Salva le impostazioni

Se hai fatto tutto correttamente, la tua console si avvierà e si collegherà al tuo server preferito, senza password poiché stai usando una passkey.


2

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

-c eseguirà automaticamente il seguente comando stringa dopo aver effettuato l'accesso


Le altre risposte a questa domanda sono piuttosto ampie, puoi approfondire questo?
bertieb,

aggiunto un po 'di più
meffect il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.