python - 从 Ubuntu 远程连接到 Windows

标签 python windows ubuntu ssh popen

我有一个在本地计算机上的 Ubuntu 中运行的 Python 程序。在程序的某个时刻,我连接到两台远程机器:一台运行 Ubuntu,另一台运行 Windows。我有连接到这些机器的 IP 地址、名称和密码。本地机器向远程机器发送命令,远程机器发送响应。现在我只是想让远程机器回显“你好”回本地机器。我可以使用以下命令从本地机器的命令行远程访问这两台机器:

sshpass -p password ssh -X name@ipaddress

其中密码名称ip 地址 已正确填写每台机器。所以我知道我可以远程访问两台机器。从那里我可以运行任何命令,就好像我在本地那台机器上一样。

但是,我想在发送简单的 echo 'hello' 指令时从我的程序中执行此操作。我可以使用以下命令通过远程 Ubuntu 服务器成功完成此操作:

from subprocess import Popen, PIPE
cmd = ["sshpass", "-p", password, "ssh", "-X", name+"@"+ipaddress, "echo 'hello'"]
ssh = Popen(cmd, stdout=PIPE, stderr=PIPE)
print ssh.stdout.readlines()

密码名称ipaddress 是此时已定义的变量。这适用于 Ubuntu 远程服务器,它返回以下列表:

['hello\n']

这很好,但是当我在 Windows 服务器上尝试同样的操作时,我得到一个空列表:

[]

我尝试了各种命令,但总是得到一个空列表。连接到 Windows 服务器时,我还需要做其他事情吗?先感谢您。

我查看了标准错误,其中包括以下列表:

['X11 forwarding request failed on channel 0\r\n', 'exec request failed on channel 0\r\n']

当我不包含 -X 标签时,我只会得到第二个错误:

['exec request failed on channel 0\r\n']

最佳答案

目标机器很可能没有安装类似 Linux 的命令。安装类似 Cygwin 的东西在 Windows 机器上。

关于python - 从 Ubuntu 远程连接到 Windows,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46532349/

相关文章:

windows - 如何在 Windows 中实现类似搜索的聚光灯?

symfony - Laravel 安装程序 v1.4.1 与 PHP 7.1 包不兼容?

c - 在 shell 中显示环境变量时出现段错误

c - 制作一个C程序来编译另一个

python - Pandas ,重命名多索引列(数据顺序已更改)

python - %d 格式为数字,不是字符串

python - 防止 x 轴标签在 matplotlib/pyplot 中被截断

windows - 调用 FileRead 后的奇怪计数值

windows - 已签名的INF驱动程序可以在已签名的计算机上运行,​​而不能在其他计算机上运行

python - 如何创建一个脚本来查找范围 (0,100) 中所有可被 4 整除的数字?