3 votes

Comment configurer le client ssh pour qu'il exécute automatiquement les commandes lors de la connexion ?

Je me connecte fréquemment à des serveurs par l'intermédiaire d'un utilisateur que je partage avec d'autres collègues. Chaque fois que je me connecte à un serveur, j'exécute quelques commandes telles que bash , set -o vi , etc.

Je voudrais savoir s'il existe un moyen d'indiquer à l'utilitaire client ssh d'exécuter ces éléments sur le serveur distant avant de m'en confier le contrôle.

En gros, quelque chose comme ça :

echo "bash; set -o vi; <DONT_EXIT>;" | ssh user@host

Y a-t-il quelque chose d'intégré dans l'utilitaire client ssh ? Y a-t-il des solutions de contournement qui sont exécutées de MON côté ? Je sais qu'il existe des solutions côté serveur, mais ce n'est pas ce que je recherche. Je ne trouve cela nulle part, donc je confirme que ce n'est pas possible.

J'utilise Linux avec l'utilitaire ssh par défaut OpenSSH.

4voto

herp-derp Points 11

Le paramètre que je cherchais est : -t qui forcerait le client ssh à allouer un terminal, ce qui donnerait ceci :

ssh -t user@host "bash -o vi"

Cela me permettra d'activer automatiquement le mode vi lors de la connexion, mais l'exécution d'autres commandes est plus délicate car si j'ajoute d'autres commandes par la suite, elles seront exécutées après la sortie de bash et quitteront immédiatement tout, de sorte que toutes les commandes doivent être exécutées avant cette sortie.

1voto

Frinavale Points 1204

Vous pouvez ajouter les commandes au fichier :

~/.bashrc

Lorsque vous vous connectez, exécutez d'abord ces commandes, puis vous obtenez le Shell.

0voto

Ben Voigt Points 6887

Peut-être terminerez-vous votre chaîne de commandes par votre Shell avec lequel vous voulez interagir ?

ssh user@host "bash -c 'set -o vi; bash'"

Je l'ai testé et il semble exécuter les commandes initiales puis être interactif, mais stdout ne revient pas correctement. J'espère que quelqu'un d'autre pourra m'indiquer la solution à ce problème.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X