我在 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/