2010-07-30 25 views
4

Je voudrais prendre quelques informations de connexion pour un script ont écrit pour être utilisé par de nombreux utilisateurs. En python, j'ai mis l'input_raw à lire de dev/tty mais il échoue horriblement quand je me connecte au script exécuté sur un serveur via ssh.activer tty dans une session ssh

Pensées? Solutions de contournement?

Je préférerais éviter les noms d'utilisateur codés en dur dans le script.

S'il vous plaît et merci.

Répondre

5

Essayez d'utiliser l'option -t à ssh:

 
    -t  Force pseudo-tty allocation. This can be used to execute arbi- 
      trary screen-based programs on a remote machine, which can be 
      very useful, e.g. when implementing menu services. Multiple -t 
      options force tty allocation, even if ssh has no local tty. 

Il ne semble pas être une option équivalente dans ~/.ssh/config, vous devrez créer un script shell. Un simple est:

#!/bin/sh 

ssh -t "$*" 

Enregistrer ce que ssh-t ou quelque chose, chmod +x ssh-t, et le mettre quelque part dans votre PATH. Définissez ensuite GIT_SSH=ssh-t pour indiquer à Git d'utiliser ce script.

+0

Cela aurait probablement fonctionné, mais je commence cette connexion ssh par un push git. Est-il possible d'injecter l'option -t? – myusuf3

+0

@garbagecollector: La variable d'environnement [GIT_SSH] (http://www.kernel.org/pub/software/scm/git/docs/) indique à Git quelle commande utiliser pour ssh. Comme expliqué sur cette page, pour passer des options à ssh, vous pouvez l'intégrer dans un autre script shell, ou utiliser '~/.ssh/config' (je recommanderais ce dernier). –

+0

@garbagecollector: Selon [SSH - Comment inclure "-t commande" dans le fichier ~/.ssh/config] (http://serverfault.com/questions/56086/ssh-how-to-include-t- command-in-the-ssh-config-file), il ne semble pas y avoir d'option de configuration équivalente pour -t. Je créerais plutôt un script shell (voir la réponse éditée). –