Изучаем Python на практике. Пишем чекер SSH серверов.

Подскажите, есть из всего списка spisok_in.txt небольшой список ip адресов, заканчивающийся на .1 (граничный маршрутизатор)
из всего этого списка, допустим 90 адресов подключаются нормально ssh username@15.12.12.1,
а есть адреса, около 35, которые подключаются с определенными ключами ssh -m hmac-md5 -c aes-sha256 username@15.12.16.1.
Подскажите, как переделать функцию, чтобы она проверяла, если не работает первый вариант, пробовала подключение по второму, который с ключами.


Сегодня как раз написал для себя чекер. Но только использую библиотеку pexpect. В общей сумме ~20 строчек кода и полностью рабочий чекер.

Можете показать, если не секрет?
на второму или третьем питоне?
 
Можете показать, если не секрет?
на второму или третьем питоне?
Python3
Показать к сожалению не могу, так как исходники на другом компьютере. Но могу рассказать и привести код, который я использовал.
Загружаете IP адреса с портами.
Передаете это в функцию, которая разбивает строку на host, ip, username, password. К примеру, при помощи метода split.
Дальше подключение:
Python:
s = pxssh.pxssh()
isGood = False
if not s.login(host, login, port, password):
    isGood = False
else:
    s.logout()
    isGood = True

    return isGood

Конечно же вы должны отловить исключения, которые будут.
И в главном коде вызывать эту функцию. Если она вернула True, то записать строку в валид.

Так же важная пометка, нужно изменить немного код библиотеки. (Файл: /usr/lib/python3/dist-packages/pexpect/pxssh.py)
Найти функцию логин и поменять прототип на:

Python:
def login(self, server, username, port, password='', ...)

Где ... там остальные параметры. Ну и конечно порт с конца убрать, раз мы его переместили вперед. Такой прототип нам позволит подключаться к любому порту.

Вот вам основа дана, прикрутите еще какие-то фичи, если надо. Я сделал еще счетчик валида и запись этого валида в файл. Удачи, надеюсь помог!
 
  • Нравится
Реакции: id2746 и centr
Вот вам основа дана, прикрутите еще какие-то фичи, если надо. Я сделал еще счетчик валида и запись этого валида в файл. Удачи, надеюсь помог!

спасибо.
но проблема в том что это 3 питон...
а у меня токмо 2.7 можно.
и лишние библиотеки ставить - это целая эпопея и гора бумаг...

мне бы уже существующую допилить напильником))
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!