Как подключиться к нескольким серверам через ssh с разными хостами и паролями в Python?

Как подключиться к нескольким серверам через ssh с разными хостами и паролями в Python?

Я пробовал использовать Parrallel-ssh. Но мне не удалось подключиться к нескольким серверам с другим паролем.

Пример документации для одного сервера:

      from pssh.clients import ParallelSSHClient

hosts = ['host1', 'host2', 'host3']

client = ParallelSSHClient(hosts, user='my_user', password='my_pass')

1 ответ

Вам может быть интересно fabric. Он предоставляет аналогичные функции, но также позволяет вручную создавать каждое соединение, а затем передавать их в группу. Например:

      from fabric.connection import Connection
from fabric.group import SerialGroup, ThreadingGroup

config = {
    'host1': {'password': '...'},
    'host2': {'password': '...'},
}

connections = []
for hostname, parameters in config.items():
    conn = Connection(hostname, **parameters)
    connections.append(conn)

with SerialGroup.from_connections(connections) as group:
    result = group.run('uname -a')

for conn, conn_result in result.items():
    print(conn, conn_result)
Другие вопросы по тегам