linux - cygwin startxwin,然后ssh到另一台机器

标签 linux cygwin

我在 Windows 上有一个批处理文件,其中包含以下行:

c:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/startxwin;"

当我从 Windows 执行它时,它会启动一个 xterm 窗口(启用了 xwin),然后我可以从那里通过 ssh 连接到我们的远程 linux 服务器。

我想做的是在批处理文件中添加 ssh 命令,这样我就可以从我的 Windows 桌面上简单地单击它,然后通过 ssh 连接到我们的远程 Linux 服务器。我试过做这样的事情:

c:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/startxwin; ssh -Y my-remote-server xterm"

但是好像不行。任何建议将不胜感激。

最佳答案

它应该与以下修改一起工作:

c:\cygwin64\bin\run.exe --quote /usr/bin/bash.exe -l -c "cd; /usr/bin/startxwin & sleep 5; DISPLAY=:0 ssh -Y my-remote-server xterm"

首先,startxwin 不会自行守护进程,因此您需要使用& 启动它以确保它在后台运行。

然后您需要导出正确的DISPLAY 环境,以便ssh 知道要连接到哪个X11 服务器(我的解决方案不导出变量,但提供它仅用于 ssh)。

然后您需要等待几秒钟以确保 X 服务器启动(sleep 5 是一个猜测,在我的机器上有效)。

然后您实际上启动了连接并执行到远程服务器的ssh进程。

我不知道 run.exe 部分,我的 cygwin 安装中没有它,也许在您的环境中它也可以与以下:

c:\cygwin64\bin\bash.exe -l -c "cd; /usr/bin/startxwin & sleep 5; DISPLAY=:0 ssh -Y my-remote-server xterm"

关于linux - cygwin startxwin,然后ssh到另一台机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31885064/

相关文章:

linux - Lubuntu 中的基本菜单 BASH 脚本

java - 如何从 Windows 工作区复制所有 Java 代码并在 Linux Eclipse 工作区中使用它

java - 是否可以在没有连接设备的情况下写入串行端口?

php - Yii2 控制台命令在 linux 上不起作用(基本应用程序)

database - 在 Cygwin 上以用户身份安装 PostgreSQL

winapi - 在什么条件下,RmGetList 会为 lpdwRebootReasons 输出参数返回 2?

git - 无法创建标签

c - 如何使用 libnl 和 netlink 套接字以编程方式将设备连接到 AP?

c - 简单 printf() 的奇怪垃圾输出

linux - 没有得到以下 Shell 脚本的输出