Ce que j'essaie de faire: démarrez une session PuTTY à partir de la ligne de commande, connectez-vous à la machine distante et au répertoire cd
to provided.
putty.exe -agent -ssh some.host
Cela ouvrira une session et une connexion avec mon identifiant par défaut et la clé privée.
echo cd /some/remote/path/ > c:/stuff/cmd.txt putty.exe -agent -ssh some.host -m 'c:/stuff/cmd.txt'
Cela ouvrira une session, vous connecter, exécuter une commande ( cd
dans ce cas) et quitter .
Comment puis-je ouvrir une session, ouvrir une session, un cd
et garder la session ouverte?
Contexte: J'utilise Emacs sous Windows et j'existe souvent des fichiers sur des machines Unix distantes à l'aide de Tramp & plink. Je veux créer un raccourci qui ouvre une session PuTTY pour cette machine distante et chdirs dans le répertoire de ce fichier. Pas grand chose sur le côté Emacs, mais je suis coincé avec PuTTY.
Ce que fait -m
, c'est que PuTTY oblige le serveur SSH à démarrer cette (ses) commande (s) INSTEAD d'un shell. Donc, une fois que votre commande est terminée, il en va de même pour la session.
Si vous souhaitez exécuter le shell après la commande cd
, vous devez l'ajouter explicitement à votre cmd.txt
, comme:
cd /my/path ; /bin/bash
En outre, le -m
implique "nopty" / mode non interactif. Pour utiliser un shell interactif, vous devez l'annuler en utilisant le commutateur -t
.
putty.exe -ssh example.com -m "c:\path\cmd.txt" -t
Alternativement, utilisez KiTTY avec son commutateur -cmd
, ce qui fait ce que vous voulez (et n'a pas besoin d'un fichier temporaire).
La session Tramp que vous commencez à emacs et la session shell que vous exécutez via le mastic sont des processus complètement distincts.
Vous êtes probablement mieux de vérifier les options de configuration pour tramp pour voir s'il existe un moyen de définir un répertoire par défaut par hôte dans votre configuration emacs. Peut-être que commencez par l'option de tramp-remote-path
comme documenté ici .
Si vous devez utiliser le mastic pour établir la connexion, vous souhaitez probablement configurer un tunnel ssh et faire en sorte que Emacs / Tramp vous connecte.