paramiko не авторизуется

Доброй ночи господа. Какой день бьюсь с модулем Paramiko. Не хочет авторизовываться. По факту пропускает авторизацию и начинает отправлять команды. не исключаю тот факт что проблема в оборудовании. на другой железке другого производителя авторизация работает. ( но окно приветствия выглядит по другому)

import time
from time import gmtime, strftime


password = "root"

def cdata_mac_ont(olt,pon,onu):
    ssh_client = paramiko.SSHClient()
    ssh_client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    ssh_client.connect(olt, 22, username='root', password=password,
                       look_for_keys=False,
                       allow_agent=False,
                       banner_timeout=100,
                       auth_timeout=100,
                       timeout=100)
    ssh = ssh_client.invoke_shell(term='putty')
    '''ssh.send(login + '\n')
    time.sleep(0.5)
    ssh.send(password + '\n')
    time.sleep(0.5)
    ssh.send('enable\n')
    time.sleep(0.5)'''
    ssh.send('config\n')
    time.sleep(0.5)
    ssh.send(f"show mac-address port gpon 0/0/{pon} ont {onu}\n")
    time.sleep(5)
    buffer = ssh.recv(60000)
    with open('register1111.txt', 'wb') as output_file:  # запись в файл
        output_file.write(ssh.recv(60000))
    ssh.send('exit\n')
    ssh.close()
    return buffer

print(cdata_mac_ont('192.168.0.11', '0', '2'))

Ниже как это выглядит на оборудовании. Это я руками зашел другим пользователем что было наглядно.

[[email protected]:67] logon via SSH successfully

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

[config@unknown:67] logoff
[config@unknown:67] logon via SSH failed

UPD 22.08.2021 Воспользовавшись другим ssh клиентом я увидел что при коннекте запрашивается login as: . Немного изменив код пришел уже к более менее результату.

def connect(ip, port, command):
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(hostname=ip, username="root", password='root',
                   port=port)

    time.sleep(1)
    ssh = client.invoke_shell()
    ssh.sendall('root\n')

    time.sleep(2)
    ssh.sendall('root\n')
    time.sleep(1)
    print(ssh.recv(9999999).decode())
    client.close()

Но все равно не могу попасть.( пробовал разные логины)

root

User name:root User password: The user name or password is invalid!

Process finished with exit code 0


Ответы (1 шт):

Автор решения: Violet

выполнение команды на удалённой машине по ssh:

def connect(ip, port, command):
    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(hostname=ip, username=user, password=password, port=port)


    stdin, stdout, stderr = client.exec_command(command)
    data = stdout.read().decode('utf-8').strip('\n')
    client.close()

connect(IP, PORT, 'lpstat -p -d | awk \'NR == 1{print $2}\'')
→ Ссылка