Генерировать SSH-соединения с помощью Paramiko
Я использую paramiko для генерации ssh-соединений, но я не могу генерировать ssh-соединения для всех машин. и я получаю ошибку для нескольких машин:
No handlers could be found for logger "paramiko.transport"
и мой код очень прост:
try:
tmp_ssh = paramiko.SSHClient()
tmp_ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
tmp_ssh.connect(tmp_ip, 22, tmp_user, tmp_pswd, timeout = 5)
tmp_res = ""
if type(tmp_cmd) == type([]):
for tmp_str in tmp_cmd:
tmp_str = tmp_str.strip()
if len(tmp_str) > 0:
tmp_in, tmp_out, tmp_err = tmp_ssh.exec_command(tmp_str)
tmp_ret = tmp_out.readlines()
tmp_res += "".join(tmp_ret)
else:
tmp_cmd = str(tmp_cmd)
tmp_str = tmp_cmd.strip()
if len(tmp_str) > 0:
tmp_in, tmp_out, tmp_err = tmp_ssh.exec_command(tmp_str)
tmp_ret = tmp_out.readlines()
tmp_res += "".join(tmp_ret)
tmp_ssh.close()
print tmp_res
except:
print "ERROR"
Я гуглю несколько предложений, чтобы решить эту проблему (например, https://github.com/newsapps/beeswithmachineguns/issues/17) и пытаюсь, как они предлагают, но я все еще не могу это исправить.
Вы встречали эту проблему раньше? как ты это исправляешь?
пс. Я также пробую ssh ( https://pypi.python.org/pypi/ssh), у него та же проблема.
1 ответ
Я думаю, я мог бы решить эту проблему, то есть изменить протокол ssh этих машин с ssh1 на ssh2, и paramiko будет в порядке.