Commencez ssh à conemu

8

comment puis-je définir un raccourci dans conEmu pour ouvrir automatiquement un nouvel onglet avec cygwin et démarrer automatiquement une commande donnée (par exemple, ssh)?

Car981
la source

Réponses:

6

Commençons donc par comment lancer cygwin bash dans un nouvel onglet. Dans mon exemple, j'utilise cygwin bash de msys-git parce que c'est ce que j'ai installé:

Git Bash Task

La commande que j'utilise est:

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

Voilà donc un shell interactif. Si je veux exécuter ls depuis l'intérieur de cygwin bash, je peux utiliser à la sh -exec place de sh --login -iIl ressemblerait à ceci:

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>

Vous pouvez donc probablement démarrer ssh à partir de cygwin bash avec quelque chose comme:

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

Vous devrez peut-être jouer avec des citations. Je suggère de regarder mes tâches conemu pour référence.

Justin Dearing
la source
3
cmd /c est en fait excessif, sauf si vous devez configurer des variables d'environnement avant d'exécuter ssh.exe. Si vous n'avez pas besoin de configurer l'environnement - vous pouvez exécuter ssh.exe directement, sans "cmd / c".
Maximus
Si je l'exécute directement, il ne s'attache pas à conemu. Que devrais-je faire ?
Car981
1
@ Car981 Vous devez ajouter cela à une tâche comme celle-ci . Regardez aussi -new_console
Justin Dearing
2
Je devais utiliser bash.exe -c "ssh ..."plutôt quebash.exe --exec "ssh ..."
Michael
3

C'est le moyen le plus simple de lancer une tâche SSH et de l'exécuter via ConEmu. Nécessite un peu plus de configuration, mais ça vaut le coup au final.

Générer une clé ssh

Étapes d'une excellente réponse ici: /server/241588/how-to-automate-ssh-login-with-password . ssh-keygen vous posera quelques questions. Les réponses par défaut sont correctes. Si vous voulez utiliser une phrase de passe vierge, c'est bien aussi. Gardez simplement votre fichier de clés en sécurité. Remplacez l'identifiant, le serveur et le mot de passe par vos informations d'identification.

$ ssh-keygen -t rsa -b 2048

$ ssh-copy-id id@server password

$ ssh id@server

Ajouter une tâche pour ssh

  • Ouvrez les paramètres ConEmu, allez dans Démarrage-> Tâches.
  • Cliquez sur +
  • Attribuer un nom à la tâche (j'ai utilisé "ssh")
  • Dans la grande zone de texte pour les commandes, les onglets, etc., placez une nouvelle commande:
    • ""C:\Program Files\Cmder\vendor\git-for-windows\bin\sh.exe" -exec "/usr/bin/ssh id@server""
    • Remplacez l'identifiant et le serveur par les vôtres

(Facultatif) Définir la tâche comme tâche par défaut

  • Passer à la fenêtre de paramétrage parent "Démarrage"
  • Dans "Options de démarrage", sélectionnez le bouton radio "Tâche nommée spécifiée"
    • Dans le menu déroulant, sélectionnez le nom de votre tâche (ssh dans mon cas)
  • Enregistrer les paramètres

Si vous avez tout fait correctement, votre console démarrera et ssh dans votre serveur de choix, aucun mot de passe requis puisque vous utilisez un mot de passe.

codepringle
la source
2

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

le -c exécutera automatiquement la commande de chaîne suivante après vous être connecté

meffect
la source
Les autres réponses à cette question sont assez vastes, pouvez-vous en dire plus?
bertieb
ajouté un peu plus
meffect