Paramiko

Содержание
Введение
Пример подключения
Объекты
Похожие статьи

Введение

Paramiko-это Python (2.7, 3.4+) реализация протокола SSHv2, обеспечивающая как клиентскую, так и серверную функциональность.

В то время как он использует расширение Python C для низкоуровневой криптографии (Cryptography), Paramiko сама по себе является чистым интерфейсом Python вокруг сетевых концепций SSH.

Документация для библиотеки Paramiko: docs.paramiko.org

Пример

Простейший пример подключения к 192.168.56.2 с пользователем andrey и паролем olegovich

#!/usr/bin/env python import time import paramiko client = paramiko.SSHClient() client.set_missing_host_key_policy(paramiko.AutoAddPolicy()) client.connect( '192.168.56.2', username='andrey', password='olegovich' ) command = 'ls' (stdin, stdout, stderr) = client.exec_command(command) time.sleep(1.0) for line in stdout.readlines(): print(line, end = '') client.close()

Обратите внимание на

client.set_missing_host_key_policy(paramiko.AutoAddPolicy())

Это означает, что наличие ключей хоста, к которому идёт подключение, в файле known_hosts не будет проверяться.

Это небезопасно и может использоваться только при подключении к хосту, которому вы полностью доверяете.

Подробности можете изучить в статье SSH

time.sleep(1.0)

Это прямолинейный способ избежать ошибки AttributeError: 'NoneType' object has no attribute 'time'

Объекты

Разберемся что есть что

client = paramiko.SSHClient() print(type(client))

<class 'paramiko.client.SSHClient'>

(stdin, stdout, stderr) = client.exec_command(command) print(type(stdin)) print(type(stdout)) print(type(stderr))

<class 'paramiko.channel.ChannelStdinFile'> <class 'paramiko.channel.ChannelFile'> <class 'paramiko.channel.ChannelStderrFile'>