如何通过Python或Jython建立SSH连接并远程运行脚本?

-1 投票
3 回答
6170 浏览
提问于 2025-04-17 02:25

你好,我想知道怎么通过Python或者Jython建立一个SSH连接,并在另一台机器上远程运行一个脚本文件。我不太确定我想运行脚本的那台机器是什么平台。请提供一些示例代码。我也不介意使用其他脚本语言。

3 个回答

1

你可以看看 Fabric

Fabric 是一个用 Python 写的库和命令行工具,主要用来简化通过 SSH 进行应用部署或系统管理的过程。

它提供了一些基本的操作,可以用来执行本地或远程的命令(可以直接执行,也可以用 sudo 提升权限),还可以上传和下载文件。此外,它还有一些辅助功能,比如可以提示用户输入信息,或者中止执行。

1

你可以试试 execnet,它提供了一种接口,可以在远程计算机上执行任意的Python代码。我在Linux机器上用过,但它在Windows和Linux上都能工作。

2

最简单、最快的方法就是用Python的os.system()来调用系统的ssh命令:

比如,这个在Ubuntu上可以运行:

import os
os.system('/usr/bin/ssh localhost ls -la /')

它通过ssh在本地执行'ls -la /'这个命令。

你需要给ssh提供正确的命令行选项,而且你可以设置ssh密钥,这样就可以安全地连接到远程主机执行命令,而不需要输入密码:

可以看看这个链接:http://www.g-loaded.eu/2005/11/10/ssh-with-keys/,或者在网上搜索更多关于ssh密钥的信息。

撰写回答