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 шт):
выполнение команды на удалённой машине по 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}\'')