библиотеки Python для обработки ssh

Я собираюсь написать первый код для обработки ssh команды на Python, и я действительно искал по stackoverflow и видел, что существует несколько библиотек Python, которыми можно пользоваться для обработки команд, прошел через ssh, как paramiko, pexpect и возможно некоторые другие.

Особенно, я должен буду считать содержание файлов от удаленного сервера, файлов копии через ssh/scp, быть произведенным от удаленного сервера после запуска сценария на удаленном сервере.

Возможно, некоторые эксперты могли совет, какая библиотека лучше, и укажите преимущества или недостатки?

26
задан yart 14 November 2013 в 16:30
поделиться

3 ответа

Библиотеки, оболочки:

  1. http://www.lag.net/paramiko/

     #! / Usr / bin / env python
    импорт парамико
    из contextlib import contextmanager
    хост = '192.168.10.142'
    username = 'бездельник'
    пароль = 'пароль'
    def create_ssh (host = host, username = username, password = password):
     ssh = paramiko.SSHClient ()
     ssh.set_missing_host_key_policy (paramiko.AutoAddPolicy ()) 
     пытаться:
     печать "создание связи"
     ssh.connect (хост, имя пользователя = имя пользователя, пароль = пароль)
     печать "подключено"
     yield ssh
     Ну наконец то:
     печать "закрытие соединения"
     ssh.close ()
     печать "закрыто"
    

1) использует 2) и обеспечивает некоторые функции более высокого уровня. Если последнее соответствует вашим требованиям, я предлагаю попробовать 1)


Обновление: 1) больше нет (2017-09-12)

  1. http://media.commandline.org.uk/code/ssh .txt (пример использования: https://zeth.net/archive/2008/05/29/sftp-python-really-simple-ssh/ )

     s = ssh.Connection ('example.com', 'воин', пароль = 'lennalenna')
    s.put ('/ домой / воин / hello.txt', '/home/zombie/textfiles/report.txt')
    s.get ('/ вар / журнал / странный.log', '/home/warrior/serverlog.txt')
    s.execute ('ls -l')
    s.close ()
    

Примечание : приведенные выше примеры кода предназначены только для получения впечатления; код не проверен.

24
ответ дан 28 November 2019 в 06:55
поделиться

Поскольку вы не делаете ничего особенного на уровне протокола, вам, по-видимому, не нужно, чтобы протокол был полностью реализован на Python, и вы могли просто запускать команды ssh / scp, используя модуль подпроцесса .

import subprocess
subprocess.check_call(['ssh', 'server', 'command'])
subprocess.check_call(['scp', 'server:file', 'file'])
25
ответ дан 28 November 2019 в 06:55
поделиться

Попробуйте взглянуть на витую раковину . Он обрабатывает все, что вы хотите. Если вы просто искали передачу файлов в стиле SCP, вы всегда могли использовать модуль python secsh-filexfer .

3
ответ дан 28 November 2019 в 06:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: