2015-09-09 5 views
0

Я провел несколько поисков при подключении к серверам и выполнении команд на серверах с использованием SSH в Python.Собственный SSH в Python

Большинство, если не все, рекомендуется использовать Paramiko. Однако серверы, на которых запущен скрипт, сильно защищены, и почти невозможно установить пользовательские библиотеки python.

Есть ли способ подключиться через SSH с помощью Python без использования каких-либо библиотек, которые не являются родными для Python 2.7?

+1

Всегда можно выполнить непосредственно команду 'ssh'. Это почти на каждой машине – Jakuje

ответ

2

В Python нет встроенной поддержки SSH.

Все вы можете это:

  • Реализовать SSH/SFTP с нуля самостоятельно. Это безумная задача.

  • Запустите клиент SFTP-команды из командной строки (например, OpenSSH sftp) из кода Python.

  • Paramiko использует LGPL license, поэтому вы можете взять its source code и использовать его напрямую, без установки какого-либо модуля.

1

Другой вариант: https://stackoverflow.com/a/1233872/524743

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

ssh [host] [command] 

и захватить выход.

Try что-то вроде:

process = subprocess.Popen("ssh example.com ls", shell=True, 
    stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 
output,stderr = process.communicate() 
status = process.poll() 
print output 

Чтобы справиться с именами пользователей и паролями, вы можете использовать подпроцесс, чтобы взаимодействовать с процессом SSH, или вы могли бы установить публичный ключ на сервере, чтобы избежать запроса пароля.

Смежные вопросы