paramiko 简介

Во-первых, что paramiko

  Для того, чтобы понять, что такое paramiko, мы должны сначала понять, протокол SSH.

 

Во-вторых, то, что протокол SSH

  SSH означает Secure Shell (перевод: Secure Shell), в соответствии с буквальным значением может знать и протоколов , связанных с безопасностью, официальный аргумент , что безопасность в сети протокола прикладного уровня на основе IETF.  Для того , чтобы обеспечить специальный протокол для удаленного сеанса входа на предложение. Из - за передачи данных SSH сжимается, это ускорит скорость передачи данных , текущий протокол SSH стала стандартной конфигурации системы Linux. (Ssh конкретных протоколов и механизмов реализации принципа малых партнеров безопасности , пожалуйста , самостоятельно Baidu)

Три, paramiko введение

  После прочтения второй части малых партнеров должны были понимать, что SSH и paramiko это библиотека Python, с помощью paramiko мы можем непосредственно использовать код Python для работы с удаленным сервером (не к окну команды холодно, удобно), так что не непосредственно использовать операцию команды SSH! ! !

Четыре, paramiko основные компоненты введены

  1. SSHClient: в основном используется для удаленного выполнения команд

  2. SFTPClient: роль аналогична команде Linux SFTP для удаленных файловых операций, загрузки файлов, загрузка и изменять права доступа к файлам

Пять, введение SSHClient

  1. Обычно используемые методы являются следующие: соединение (): в основном используется для выполнения аутентификации и подключения к удаленному серверу,

  Параметры, необходимые являются следующие:

  

 Защиту подключения ( 
        я, 
        имя хоста, 
        порт = SSH_PORT, 
        имя пользователя = None, 
        пароль = None, 
        PKey = None, 
        key_filename = None, 
        таймаут = None, 
        allow_agent = Правда, 
        look_for_keys = Правда, 
        компресс = False, то 
        носка = None, 
        gss_auth = Ложные , 
        gss_kex = false,
        gss_deleg_creds = Правда, 
        gss_host = None, 
        banner_timeout = None, 
        auth_timeout = None, 
        gss_trust_dns = Правда, 
        ключевая фраза = None, 
        disabled_algorithms = None, 
    ):

  Как видно из вида источника имени хоста необходимо заполнить параметры, чтобы указать хост для подключения, порт является портом для подключения, как правило, по умолчанию 22, имя пользователя это имя пользователя, пароль пароль, PKey это путь частного Аутентификация key_filename файл закрытого ключа указан адрес. Главное, эти параметры.

  2.  set_missing_host_key_policy () : Набор стратегий выживания , когда удаленный сервер не записывается в файл know_hosts. Есть три стратегии

  AutoAddPolicy 自动添加主机名及主机密钥到本地HostKeys对象,不依赖load_system_host_key的配置。即新建立ssh连接时不需要再输入yes或no进行确认

  WarningPolicy 用于记录一个未知的主机密钥的python警告。并接受,功能上和AutoAddPolicy类似,但是会提示是新连接
  RejectPolicy 自动拒绝未知的主机名和密钥,依赖load_system_host_key的配置。此为默认选项
  3. exec_command () : используется для удаленного выполнения команд
  4. open_sftp () : создать SFTP SSH сессии на основе текущей сессии. Объект будет возвращать sftpclient
Шесть, sshclient пример использования:
 
Импорт paramiko 
# Первый шаг инстанциируется SSHClient, получить объект клиента
= paramiko.SSHClient ()
# установить политику автоматического добавления, не добавляйте слова, если не в локальных хостов записи файлов know_hosts не может подключиться client.set_missing_host_key_policy (paramiko.AutoAddPolicy) ()
# подключиться к удаленному хосту, client.connect (имя хоста
= « вы хотите подключить ф » , Port = 22, имя = «Вашего имени пользователя » , пароль = «пароль пользователя » )
# установлены каналы и выполнить правильную команду STDOUT STDERR вывод ошибок вывода STDIN, STDOUT, STDERR = client.exec_command (
' DF -H ' )

client.close ()

2. Ключ соединения

  

# Получить ключевую позицию 
Частный = paramiko.RSAKey.from_private_key_file ( « /Users/ch/.ssh/id_rsa » ) # инстанцирован SSHClient Client = paramiko.SSHClient () # автоматически добавляется стратегию , чтобы сохранить имя хоста сервера и ключевой информации, Если вы это сделаете , не добавить, это уже не локальный файл know_hosts записывает хост не будет подключения client.set_missing_host_key_policy (paramiko.AutoAddPolicy ()) # подключиться к SSH сервера, имя пользователя и пароль для аутентификации на client.connect (имя хоста = « 10.0.0.1 » Порт = 22, имя пользователя = ' корень ' , PKey = Private)

Представьте семь, SFTPClient общий метод

  from_transport(cls,t) 创建一个已连通的SFTP客户端通道

  put(localpath, remotepath, callback = None , confirm = True ) 将本地文件上传到服务器 参数confirm:是否调用stat()方法检查文件状态,返回ls  - l的结果
  get(remotepath, localpath, callback = None ) 从服务器下载文件到本地
  mkdir() 在服务器上创建目录
  remove() 在服务器上删除目录
  rename() 在服务器上重命名目录
  stat() 查看服务器文件状态
  listdir() 列出服务器目录下的文件
Пример использования:
 
Импорт paramiko 
 
# получения транспорта Примеры 
Tran paramiko.Transport = (( ' 10.0.0.3 ' , 22 )) 
 
# сервер SSH, используя пароль 
tran.connect (имя = " корень " , пароль = ' 123456 ' )
 # или 
# конфигурации закрытого ключа местоположение файла 
частной paramiko.RSAKey.from_private_key_file = ( « /Users/root/.ssh/id_rsa » )
 # сервер SSH, секретный ключ используется для указания PKEY 
tran.connect (имя пользователя = « корень » , PKey = частное ) 
 
# прибудет SFTP экземпляр 
SFTP =paramiko.SFTPClient.from_transport (Tran) 
 
# установлен локальный / удаленный путь к файлу загрузки 
LocalPath = " /Users/root/Downloads/1.txt " 
remotePath = " /tmp/1.txt " 
 
# выполнить действие загрузки 
sftp.put (LocalPath , remotePath)
 # выполнить действие загрузки 
sftp.get (remotePath, LocalPath) 
 
tran.close ()

 

 

Ссылка статья: https://www.cnblogs.com/xiao-apple36/p/9144092.html#_label2_2

Добро пожаловать, чтобы войти в обсуждение QQ группы о Python: 515 458 373

рекомендация

отwww.cnblogs.com/qiujichu/p/12048763.html
рекомендация