Je suis connecté à un serveur via paramiko et j'essaie de passer à un autre utilisateur. Mais je suis confronté aux erreurs ci-dessous.

Sudo : aucun tty présent et aucun programme askpass spécifié

Sudo : pam_authenticate : erreur de conversation

J'ai essayé l'option avec "sudo -S" et j'ai également transmis le mot de passe avec la commande. Mais pas de chance. S'il vous plaît aidez-moi à résoudre cela

J'essaie de me connecter à un serveur Linux distant à partir d'un serveur Windows et je ne peux donc pas utiliser pexpect car il ne prend pas en charge Windows maintenant.

PFB le script.

ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(host, username=user, password=pwd)
print("Connected to: ", host)
stdin, stdout, stderr = ssh.exec_command('sudo su test_user')
if stdin:
    print("asked for inp: ", stdin)
    stdin.write(pwd+"\n")
    stdin.flush()
error = ""
output = ""
for err in stderr.readlines():
    error = error + err
if error != "":
    print("error: ", error)```



0
athira 20 févr. 2020 à 11:40

1 réponse

Meilleure réponse

Essayé d'incorporer sudo dans toutes les commandes que je dois exécuter via paramiko, et cela semble bien fonctionner. code qui a bien fonctionné :

stdin, stdout, stderr = ssh.exec_command('sudo -S chown -R test_user:test_user /tmp/test.txt')

0
athira 6 mars 2020 à 12:13