python примеры - Paramiko Несовместимый ssh peer(без приемлемого алгоритма kex)




cisco client (7)

Я получаю следующую ошибку при попытке ssh подключиться к устройству Cisco ACS с помощью библиотеки paramiko. Я использовал Paramiko в Python без проблем, и я могу SSH для этого окна из командной строки, или используя Putty без проблем Я включил отладку и скопировал информацию здесь. Пожалуйста, дайте мне знать, если вы можете мне помочь.

import paramiko
import sys
import socket

try:
    paramiko.common.logging.basicConfig(level=paramiko.common.DEBUG)
    sshConnection = paramiko.SSHClient()
    sshConnection.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    sshConnection.connect('server',username='username',password='password')
except paramiko.BadAuthenticationType:
    sys.stdout.write('Bad Password!\n')     
    sys.exit()
except paramiko.SSHException, sshFail:
    sys.stdout.write('Connection Failed!\n')
    sys.stdout.write('%s\n' % sshFail)
    sys.exit()
except socket.error, socketFail:
    sys.stdout.write('Failed to open socket\n')
    sys.stdout.write('%s\n' % socketFail)
    sys.exit()

и отладочный вывод вернул:

DEBUG:paramiko.transport:starting thread (client mode): 0x14511d0L
INFO:paramiko.transport:Connected (version 2.0, client OpenSSH_5.3)
DEBUG:paramiko.transport:kex algos:['diffie-hellman-group14-sha1'] server key:['ssh-rsa'] client encrypt:['aes256-cbc', 'aes128-cbc', '3des-cbc'] server encrypt:['aes256-cbc', 'aes128-cbc', '3des-cbc'] client mac:['hmac-sha1'] server mac:['hmac-sha1'] client compress:['none', '[email protected]'] server compress:['none', '[email protected]'] client lang:[''] server lang:[''] kex follows?False
ERROR:paramiko.transport:Exception: Incompatible ssh peer (no acceptable kex algorithm)
ERROR:paramiko.transport:Traceback (most recent call last):
ERROR:paramiko.transport:  File "build\bdist.win32\egg\paramiko\transport.py", line 1546, in run
ERROR:paramiko.transport:    self._handler_table[ptype](self, m)
ERROR:paramiko.transport:  File "build\bdist.win32\egg\paramiko\transport.py", line 1618, in _negotiate_keys
ERROR:paramiko.transport:    self._parse_kex_init(m)
ERROR:paramiko.transport:  File "build\bdist.win32\egg\paramiko\transport.py", line 1731, in _parse_kex_init
ERROR:paramiko.transport:    raise SSHException('Incompatible ssh peer (no acceptable kex algorithm)')
ERROR:paramiko.transport:SSHException: Incompatible ssh peer (no acceptable kex algorithm)
ERROR:paramiko.transport:
Connection Failed!
Incompatible ssh peer (no acceptable kex algorithm)

Я убедился, что у меня установлены самые последние версии pycrypto и paramiko.


Answers

Я получаю следующую ошибку при попытке подключиться к устройству Aruba с помощью paramiko:

paramiko.ssh_exception.SSHException: несовместимый ssh ​​peer (нет приемлемого алгоритма kex)

Обновление paramiko решило эту проблему:

sudo pip install paramiko --upgrade

У меня была похожая проблема с Debian 8 и OpenSSH на стороне сервера.

В качестве быстрого исправления, следующие настройки Cipher / MACs / KexAlgorithms на стороне сервера решают проблему:

В / etc / ssh / sshd_config:

Ciphers aes256-[email protected].com,aes128-[email protected].com,aes256-ctr,aes128-ctr
MACs hmac-sha2-512-[email protected].com,hmac-sha2-256-[email protected].com,umac-128-[email protected].com,hmac-sha2-512,hmac-sha2-256,hmac-ripemd160,hmac-sha1
KexAlgorithms diffie-hellman-group-exchange-sha256,diffie-hellman-group14-sha1,diffie-hellman-group-exchange-sha1

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

Также не уверен, что вы можете изменить его таким образом для Cisco ACS


Это может не помочь ситуации ОП, но, надеюсь, это может помочь кому-то еще с той же ошибкой.

Я столкнулся с ситуацией, когда один сценарий мог бы просто войти в систему через SSH, но другой подобный сценарий не работал бы с тем же

paramiko.SSHException: Incompatible ssh peer (no acceptable kex algorithm)

ошибка.

Ситуация оказалась строкой Шебанга в верхней части моего сценария:

#!/usr/bin/python

Потерпит неудачу, пока

#!/usr/bin/env python

будет успешным.

Я использую virtualenvs в моей системе, поэтому в сбойной версии /usr/bin/python использовалась более старая версия Paramiko, установленная в системе, тогда как в /usr/bin/env python использовалась более новая установка Paramiko в моей virtualenv.


Для меня я обновил версию paramiko, и это решило проблемы. В частности, я изначально установил paramiko с помощью пакета python-paramiko Ubuntu 14.04 и заменил его последним, используя pip (1.10 -> 1.16).


Если у кого-то еще pip install paramiko --upgrade эта проблема даже после обновления с использованием pip install paramiko --upgrade , убедитесь, что у вас не установлено paramiko во всей системе, потому что он будет загружен раньше pip, вы можете проверить это с помощью dpkg -l | grep paramiko dpkg -l | grep paramiko , если он установлен, удалите его и установите через pip.


Я обновил paramiko, чтобы решить проблему:

 sudo pip install paramiko --upgrade

Моя обновленная версия Paramiko:

paramiko==2.0.2


Так как основная помощь от GNU split говорит:

Usage: /usr/gnu/bin/split [OPTION]... [INPUT [PREFIX]]
Output fixed-size pieces of INPUT to PREFIXaa, PREFIXab, ...; default
size is 1000 lines, and default PREFIX is 'x'.  With no INPUT, or when INPUT
is -, read standard input.

Mandatory arguments to long options are mandatory for short options too.
  -a, --suffix-length=N   generate suffixes of length N (default 2)
      --additional-suffix=SUFFIX  append an additional SUFFIX to file names.
  -b, --bytes=SIZE        put SIZE bytes per output file
  -C, --line-bytes=SIZE   put at most SIZE bytes of lines per output file
  -d, --numeric-suffixes[=FROM]  use numeric suffixes instead of alphabetic.
                                   FROM changes the start value (default 0).
  -e, --elide-empty-files  do not generate empty output files with '-n'
      --filter=COMMAND    write to shell COMMAND; file name is $FILE
  -l, --lines=NUMBER      put NUMBER lines per output file
  -n, --number=CHUNKS     generate CHUNKS output files.  See below
  -u, --unbuffered        immediately copy input to output with '-n r/...'
      --verbose           print a diagnostic just before each
                            output file is opened
      --help     display this help and exit
      --version  output version information and exit

Мне кажется, что вам нужно немного реорганизовать свои варианты:

split -a 4 -d -l 50000 domains.xml domains_




python ssh paramiko cisco