2008-12-15 7 views
2

Essayer de suivre une technique trouvée à bzr et gitosis je ne les éléments suivants:Python: os.environ.get (« SSH_ORIGINAL_COMMAND ») retourne Aucun

ajouté à ~/.ssh/authorized_keys le paramètre command="my_parser" qui pointent vers un fichier script python nommé 'my_parser' et situé dans /usr/local/bin (fichier a été chmodé comme 777)

dans ce fichier script '/usr/local/bin/my_parser' je suis arrivé les lignes suivantes:

#!/usr/bin/env python 
import os 
print os.environ.get('SSH_ORIGINAL_COMMAND', None) 

Lors d'une tentative de SSH par ex. Je reçois None sur le terminal, puis la connexion est fermée.

Je me demande si quelqu'un l'a déjà fait ou fait pareil et peut m'aider avec ça.

Y a-t-il quelque chose que je devrais faire dans mon fichier python afin d'obtenir cette variable d'environnement ?

Répondre

1

$SSH_ORIGINAL_COMMAND est définie lorsque vous vous connectez à un hôte avec ssh pour exécuter une seule commande:

$ ssh [email protected] 'some command' 

Votre « my_parser » retournerait alors « une commande ». Si vous n'appelez pas un shell avec my_parser, il quittera et la connexion se fermera. Vous pouvez l'utiliser pour contrôler l'environnement des commandes exécutées à distance, mais vous perdez la possibilité d'avoir une session interactive