Парамико и судо

Я уже какое-то время искал в сетях решение моей проблемы, и безуспешно.

Моя проблема в том, что я не могу понять команды sudo для запуска с paramiko.

Сначала я попытался просто использовать функцию SSHClient (). Exec_command (command) для выполнения команды sudo, но эта ошибка:

sudo: sorry, you must have a tty to run sudo

Затем, следуя совету этого сообщения: Как сделать Команда sudo с использованием Paramiko , я пробовал это:

#self._ssh is the SSHClient object    
self._ssh.invoke_shell().exec_command(command)

Однако в большинстве случаев это просто дает мне:

File "pipelines/load_instance/ssh_tools.py", line 71, in executeCommand
    stdin, stdout, stderr = self._ssh.invoke_shell().exec_command(command)
  File "/paramiko/channel.py", line 213, in exec_command
    self._wait_for_event()
  File "/paramiko/channel.py", line 1084, in _wait_for_event
    raise e
paramiko.SSHException: Channel closed.

В другом, я бы сказал, в 40% случаев я получаю следующее:

File "/paramiko/client.py", line 291, in connect
    sock.connect(addr)
File "/usr/lib/python2.7/socket.py", line 224, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 111] Connection refused

Кстати, я m пытается запустить эти команды sudo на экземпляре Amazon Web Services EC2, поэтому я не понимаю, почему я получаю ошибку Connection Refused, поскольку каждый раз, когда я запускаю этот код, он выполняется на новом новом экземпляре ...

Также я использую paramiko 1.7.6.

5
задан Community 23 May 2017 в 11:46
поделиться