2013-09-25 3 views
1

J'ai un hôte sur lequel j'ai créé un script.Exécuter le script bash sur ssh

Le script est exécuté à chaque fois que l'utilisateur se connecte via ssh. Bashrc lance le script.

Maintenant, j'essaie d'exécuter le script même si l'utilisateur ne se connecte pas et exécute simplement une commande. Par exemple, je veux que le script à exécuter si un utilisateur est en cours d'exécution les suivantes:

ssh [email protected] some_command 

Y at-il un moyen d'atteindre ce qui précède?

+0

alors quel est le problème avec l'approche ci-dessus? vous pouvez exécuter des commandes comme "ssh user @ host" /path/to/script.sh '"si tout (permissions) est configuré correctement. – hovanessyan

+0

Je suppose qu'il veut qu'un script soit exécuté sur l'hôte distant lorsque l'utilisateur exécute un script via 'ssh' non seulement quand l'utilisateur se connecte. – Atropo

Répondre

2

Une solution affectant tous les utilisateurs pourrait utiliser pam-exec et lancer un script sur l'événement de connexion de l'utilisateur. Vérifiez le pam-exec manual page et un exemple sur la façon de l'utiliser pam-exec scripting.

Une solution simple pour un seul utilisateur doit être ajouter le script dans le fichier rc de l'utilisateur ssh, ajoutez votre script:

~/.ssh/rc 

Je l'ai fait quelques tests et la solution rc fonctionne très bien dans Dans votre cas, il est exécuté lorsque l'utilisateur lance une commande à distance via ssh.

Si vous n'avez pas de fichier rc, créez-le.

+0

Merci pour la réponse! mais que faire si je n'ai pas de fichier rc sous ~/ssh dir? btw ceci est un hôte de course en cours d'exécution cygwin –

+0

De rien, si vous trouvez ma réponse utile s'il vous plaît upvote et/ou l'accepter. Si vous n'avez pas le fichier 'rc', créez-le simplement dans le fichier' ~/.ssh/'. – Atropo

+0

quand je le crée, que faut-il écrire à l'intérieur? '!/bin/bash ./script_name'? ou autre chose? –

0

vous pouvez modifier authorized_keys fichier et ajouter une commande, quelque chose comme: commande = "/ home/Michale/bin/dothis.sh" ... clé publique ... pour plus de détails lire ssh et documentations authorized_keys.

Questions connexes