有没有办法通过这种方式使用 SSH 在远程服务器上启动 Firefox ?:
ssh username@ip_address [command line]
当我跑步时:(ssh username@ip_address -Y (or -X) firefox
我想启动火狐在远程-Ubuntu 桌面-从我的本地-Ubuntu 服务器),我收到此错误:Error: no display specified
重要的提示:我想从 Ubuntu 服务器运行此命令到 Ubuntu 桌面操作系统。
答案1
您可以使用 X Forwarding 来实现这一点。确保您的服务器上安装了 Firefox,然后从您的桌面运行:
ssh username@ip_adress -Y [command line]
如果 -Y 不起作用,您仍然可以使用 -X 代替。
如果它不起作用,请确保:
- 在
/etc/ssh/sshd_config
服务器上,X11Forwarding
设置为yes
- 在
/etc/ssh/ssh_config
客户端上,ForwardX11
设置为yes
。如果需要,请添加以下行。 - 服务器上安装了 xauth:
sudo apt-get install xauth
问候,
托马斯。
答案2
这应该会让你兴奋:
ssh machine DISPLAY=0:0 firefox
刚刚在两台 Ubuntu 机器上尝试了一下。
该语法FOO=asdf BAR=fdsa command arg arg2
对 SSH 来说并不特殊,只是为设置环境变量command
。您需要告诉 Firefox X11 显示器在哪里 - 在这种情况下,它是与 Firefox 相同的机器。不使用 X11 转发,因为 Firefox 和 X11 服务器都在同一个框中。
答案3
简单的远程浏览
如果您想像坐在远程机器前一样在本地浏览网页:
$ ssh -X [email protected]
然后运行 Firefox在远程终端会话中:
$ firefox https://test-ipv6.com/
-X
注意命令中标志的用法ssh
。您也可以一次性完成两个步骤,如下所示:
$ ssh -X [email protected] firefox http://test-ipv6.com/
隧道远程 IP:端口
如果您有一个远程运行的应用程序公开某种 Web 前端,那么您会对将远程 IP:port 公开为本地 IP:port 感兴趣。在这种情况下,选项定义了和-L
之间的对应关系,如下面的伪命令所示:localhost:localport
remotehost:remoteport
ssh -L localhost:localport:remotehost:remoteport remoteuser@remotehost
例如:
$ ssh -L 127.0.0.1:18080:internal.example.com:8080 [email protected]
然后运行 Firefox本地:
$ firefox http://127.0.0.1:18080
在上面的例子中,你通过 SSH 连接到[email protected]
,并且你对 处公开的 Web 前端感兴趣internal.example.com:8080
。此远程 IP:port 将在 处本地公开127.0.0.1:18080
。