2016-11-11 4 views
0

Итак, при обнаружении неполадок в последнее время произошли некоторые изменения в моей среде python. У меня сложилось впечатление, что все вернулось к правам, но это не всегда так. Мои командные команды кажутся неудачными, в том числе с очень простыми тестами. Кажется, что это проблема с ключевой обработкой/обходным паролем с paramiko.Ткань, сталкивающаяся с проблемой auth с paramiko

Например, с этим относительно простым примером:

#!/usr/bin/env python 

from fabric.api import * 
from fabric import exceptions 
import paramiko 
from sys import argv 
import re 
import os 
import getpass 

import logging 
logging.basicConfig(level=logging.DEBUG) 

failed_hosts = {} 

def run_command(Command): 
    try: 
#  print_env('run_command', Command) 
#  print_transport() 
     output = run(Command, shell = False) 
     return output 
    except exceptions.NetworkError as e: 
     print "Error encountered for %s: %s" % (env.host_string, e) 
     failed_hosts[env.host_string] = e 

def test_ver(): 
    result=run_command('sh ver') 
    print result 

я получаю:

ca-cmacnevi-mac:~ christian.macnevin$ fab -f fabtest.py test_ver -u admin No hosts found. Please specify (single) host string for connection: cisco_switch [cisco_switch] run: sh ver DEBUG:paramiko.transport:starting thread (client mode): 0x3d9da90L DEBUG:paramiko.transport:Local version/idstring: SSH-2.0-paramiko_1.17.2 DEBUG:paramiko.transport:Remote version/idstring: SSH-2.0-Cisco-1.25 INFO:paramiko.transport:Connected (version 2.0, client Cisco-1.25) DEBUG:paramiko.transport:kex algos:[u'diffie-hellman-group1-sha1'] server key:[u'ssh-rsa'] client encrypt:[u'aes128-cbc', u'3des-cbc', u'aes192-cbc', u'aes256-cbc'] server encrypt:[u'aes128-cbc', u'3des-cbc', u'aes192-cbc', u'aes256-cbc'] client mac:[u'hmac-sha1', u'hmac-sha1-96', u'hmac-md5', u'hmac-md5-96'] server mac:[u'hmac-sha1', u'hmac-sha1-96', u'hmac-md5', u'hmac-md5-96'] client compress:[u'none'] server compress:[u'none'] client lang:[u''] server lang:[u''] kex follows?False DEBUG:paramiko.transport:Kex agreed: diffie-hellman-group1-sha1 DEBUG:paramiko.transport:Cipher agreed: aes128-cbc DEBUG:paramiko.transport:MAC agreed: hmac-md5 DEBUG:paramiko.transport:Compression agreed: none DEBUG:paramiko.transport:kex engine KexGroup1 specified hash_algo DEBUG:paramiko.transport:Switch to new keys ... DEBUG:paramiko.transport:Trying SSH agent key d0f5d22e756685a3640d3a24ec18bb6c DEBUG:paramiko.transport:userauth is OK DEBUG:paramiko.transport:Authentication type (publickey) not permitted. DEBUG:paramiko.transport:Allowed methods: [u'password'] [cisco_switch] Passphrase for private key: DEBUG:paramiko.transport:starting thread (client mode): 0x3dc6e50L DEBUG:paramiko.transport:Local version/idstring: SSH-2.0-paramiko_1.17.2 DEBUG:paramiko.transport:Remote version/idstring: SSH-2.0-Cisco-1.25 INFO:paramiko.transport:Connected (version 2.0, client Cisco-1.25) DEBUG:paramiko.transport:kex algos:[u'diffie-hellman-group1-sha1'] server key:[u'ssh-rsa'] client encrypt:[u'aes128-cbc', u'3des-cbc', u'aes192-cbc', u'aes256-cbc'] server encrypt:[u'aes128-cbc', u'3des-cbc', u'aes192-cbc', u'aes256-cbc'] client mac:[u'hmac-sha1', u'hmac-sha1-96', u'hmac-md5', u'hmac-md5-96'] server mac:[u'hmac-sha1', u'hmac-sha1-96', u'hmac-md5', u'hmac-md5-96'] client compress:[u'none'] server compress:[u'none'] client lang:[u''] server lang:[u''] kex follows?False DEBUG:paramiko.transport:Kex agreed: diffie-hellman-group1-sha1 DEBUG:paramiko.transport:Cipher agreed: aes128-cbc DEBUG:paramiko.transport:MAC agreed: hmac-md5 DEBUG:paramiko.transport:Compression agreed: none DEBUG:paramiko.transport:kex engine KexGroup1 specified hash_algo DEBUG:paramiko.transport:Switch to new keys ... DEBUG:paramiko.transport:Trying SSH agent key d0f5d22e756685a3640d3a24ec18bb6c DEBUG:paramiko.transport:userauth is OK DEBUG:paramiko.transport:Authentication type (publickey) not permitted. DEBUG:paramiko.transport:Allowed methods: [u'password'] DEBUG:paramiko.transport:Trying discovered key d014d32e356785aa628d3aa44cd6b265 in /Users/christian.macnevin/.ssh/id_rsa INFO:paramiko.transport:Disconnect (code 2): Protocol error: expected packet type 50, got 5 Error encountered for cisco_switch: No existing session DEBUG:paramiko.transport:EOF in transport thread None

Done.

Я видел некоторые советы с предложением установки paramiko на «look_for_keys» Ложь, но либо получил это неправильно или это не помогло. И все это, казалось, работало очень хорошо несколько дней назад, поэтому я подозреваю, что в игре есть что-то другое.

Соответствующие:

ФАБ --version Ткань 1.12.0 Paramiko 1.17.2

питон --version Python 2.7.12

+0

Я не видел ни одного хоста, указанного в вашем файле fabfile или в вашей команде. Попробуйте 'fab --host = <имя хоста> test_ver'. Кроме того, убедитесь, что вы украшаете задачи с помощью декоратора '@ task'. – 2ps

+0

Привет, спасибо за ответ. Для этого теста я удалил все, что мог, поэтому я указываю хосты в командной строке. Я добавлю @task, но могу сказать, что это не повлияло на файл, где я впервые столкнулся с проблемой. –

ответ

0

В конце концов, куча более деинсталлировать и переустановка и перезапуск сделали трюк. Короче говоря, похоже, что парамико был в плохом состоянии и основной поиск неисправностей системы фиксировал вещи. Спасибо за совет!