Существует несколько способов решения проблемы:
- Перенос программ командной строки
- использовать библиотеку Python, которая предоставляет возможности SSH (например, - Paramiko или Twisted Conch )
У каждого подхода есть свои причуды. Вам нужно будет настроить ключи SSH для включения входа без пароля, если вы переносите системные команды, такие как «ssh», «scp» или «rsync». Вы можете встроить пароль в сценарий, используя Paramiko или другую библиотеку, но вы можете столкнуться с отсутствием документации, разочаровывающей, особенно если вы не знакомы с основами SSH-соединения (например, обмен ключами, агенты и т. Д.). Вероятно, само собой разумеется, что ключи SSH почти всегда лучше, чем пароли для такого рода вещей.
ПРИМЕЧАНИЕ: rsync трудно превзойти, если вы планируете передавать файлы через SSH, особенно если альтернативой является старая версия scp.
Я использовал Paramiko, ориентируясь на замену системных вызовов, но обнаружил, что возвращаюсь к упакованным командам из-за их простоты использования и непосредственного знакомства. Вы можете быть другим. Я дал Кончу некоторое время назад, но он мне не понравился.
Если выбран путь системного вызова, Python предлагает массив опций, таких как os.system или модули command / subprocess. Я бы пошел с модулем подпроцесса, если использовать версию 2.4 +.