37 lines
1.3 KiB
Python
37 lines
1.3 KiB
Python
import paramiko
|
||
import os
|
||
from config import HOSTS_LIST
|
||
|
||
for host in HOSTS_LIST:
|
||
print(f"\n🔍 Проверяю {host['name']} ({host['ip']})")
|
||
print(f" Пользователь: {host['user']}")
|
||
print(f" Ключ: {host['key_path']}")
|
||
|
||
# Проверяем существование ключа
|
||
if not os.path.exists(host['key_path']):
|
||
print(f" ❌ Файл ключа НЕ СУЩЕСТВУЕТ: {host['key_path']}")
|
||
continue
|
||
|
||
# Пробуем подключиться
|
||
try:
|
||
client = paramiko.SSHClient()
|
||
client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
|
||
client.connect(
|
||
hostname=host['ip'],
|
||
port=host['port'],
|
||
username=host['user'],
|
||
key_filename=host['key_path'],
|
||
timeout=5
|
||
)
|
||
print(" ✅ Подключено успешно!")
|
||
|
||
# Проверяем тип хоста
|
||
stdin, stdout, stderr = client.exec_command("uname -a")
|
||
print(f" Система: {stdout.read().decode().strip()}")
|
||
|
||
client.close()
|
||
except paramiko.AuthenticationException:
|
||
print(" ❌ Ошибка аутентификации! Неверный логин или ключ")
|
||
except Exception as e:
|
||
print(f" ❌ Ошибка: {e}")
|