41 votes

Exécuter une commande à distance en utilisant le fichier de configuration ssh

Je voudrais pouvoir configurer une commande à exécuter lors de la connexion ssh à un serveur, sans avoir besoin de la taper. En gros, je cherche l'équivalent du fichier de configuration ssh de la commande suivante :

ssh hôte commande

pour que tout ce que j'ai à taper soit :

ssh hôte

et que la commande soit exécutée.

30voto

Vous pouvez résoudre cela dans votre fichier .ssh/config, pour l'hôte où vous voulez exécuter une commande, ajoutez

  RequestTTY yes
  RemoteCommand 

où est votre commande. Cela fonctionne également avec screen ou tmux.

16voto

13aal Points 317

Il est également possible d'insérer une commande dans votre fichier de clés autorisées. (~/.ssh/authorized_keys). Cela vous permet d'exécuter une commande personnalisée pour chaque clé dans le fichier. J'utilise cela pour faire suivre les connexions shell à travers mon pare-feu. Le résultat est que je peux me connecter en ssh à un hôte et il connecte automatiquement la session à un hôte à l'intérieur du réseau. L'entrée authorized_keys ressemble à ceci :

command="ssh -Tq  \"$SSH_ORIGINAL_COMMAND\"",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa AAAA... le reste de la clé ...

Plus précisément, la redirection est pour mon instance gitolite. Cela permet un accès extérieur simple sans exposer directement l'hôte gitolite à un quelconque accès externe. Consultez la page de manuel pour plus d'informations. ( http://linux.die.net/man/8/sshd )

10voto

coneslayer Points 8422

Si vous utilisez OpenSSH, il semble que ~/.ssh/rc soit exécuté lors de la connexion.

9voto

CHitchcock Points 161

Vous pourriez configurer un alias bash.

Dans votre fichier .bashrc, mettez:

alias ssl='ssh some_host run_command'

Alors vous n'auriez même pas à taper le nom d'hôte.

Ou, si vous vouliez le faire avec plusieurs hôtes (et que plusieurs alias ne fonctionneraient pas), utilisez un petit script:

kevin@box:~$ cat ssl.sh
#!/bin/sh
ssh $1 some_command
kevin@box:~$

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