не в состоянии sudo su с помощью paramiko - PullRequest
0 голосов
/ 20 февраля 2020

Я подключен к серверу с помощью paramiko и пытаюсь переключиться на другого пользователя. Но я сталкиваюсь с ошибками, приведенными ниже.

sudo: отсутствует tty и не указана программа askpass

sudo: pam_authenticate: ошибка диалога

Я попробовал вариант с "sudo - S ", а также передача пароля вместе с командой. Но не повезло. Пожалуйста, помогите мне решить эту проблему

Я пытаюсь подключиться к удаленному linux серверу с сервера windows, и поэтому я не могу использовать pexpect, так как он не поддерживает windows сейчас дней

PFB скрипт.

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)```



1 Ответ

0 голосов
/ 06 марта 2020

попытался включить sudo во все команды, которые мне нужно выполнить через paramiko, и это, кажется, работает нормально. код, который работал нормально:

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

...