【发布时间】:2021-04-19 14:56:41
【问题描述】:
一些有用的信息:VM 位于 Azur 上并运行 Windows 10,我的本地计算机也运行 Windows 10,我的 VM 上安装了 OpenSSH_server,端口 22 和 50001 均对入站/出站开放。
这是我的问题:
我有一个程序在我的本地计算机 (compA) 上运行图形界面,它允许我通过 SSH 连接到远程计算机(使用 python 的结构模块),并在文本小部件中显示输出。我成功连接到我的 VM (compB),并通过 SSH 在 compB 上运行 .cmd。 .cmd 文件只有一行:java -jar C:\Redacted\sikulix\sikulix.jar -d 2 -s
手动执行时,效果很好,我可以访问http://localhost:50001/,我可以执行脚本。
当我通过 SSH 执行它时,我看到的只是 OpenJDK 平台二进制进程正在启动,但我无法访问 http://localhost:50001/ 并且无法执行脚本。
我可以执行其他命令,例如ipconfig、dir。
是否有理由阻止 sikuli 服务器通过 SSH 启动?有什么我想念的吗?
编辑1:
这是我如何进行 SSH 连接(使用结构模块)
client = fabric.Connection(host=hostname, user='redacted', connect_kwargs={'password': 'Redacted'})
这里是我如何运行命令(结构模块)
command = "java -jar C:\\SaisigoWriter\\sikulix\\sikulix.jar -d 2 -s"
client.run(command)
我还有一个输出重定向器:
class TextReddirector(object):
def __init__(self, widget, tag="stdout"):
self.widget = widget
self.tag = tag
def writer(self, output_str):
self.widget.config(state="normal")
self.widget.insert("end", output_str, (self.tag,))
self.widget.see(tk.END)
self.widget.update()
self.widget.config(state="disabled")
def flush(self):
print("")
【问题讨论】:
-
OpenSSH 服务器是在任何类似于桌面会话的环境中运行,还是只是一个没有桌面的服务?
-
OpenSSH 服务器在 Windows 10 虚拟机上运行,它有一个桌面会话。