Я уже какое-то время искал в сетях решение моей проблемы, и безуспешно.
Моя проблема в том, что я не могу понять команды 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.