Mac终端远程连接Ubutun运行图形应用

【我的环境】

mac:

ubutun:

Ubuntu 16.04.5 LTS \n \l

4.15.0-36-generic

    如何在Mac上面直接显示Ubutun服务器上的图形或视频?虽然是个小技巧,但对我来说确帮助很大。因为目前主要在做机器视觉方面的应用,模型的训练都在GPU服务器上。在调试代码的过程中,直接在Mac终端调出图形窗口显示服务器上图形极大的便捷了调试过程。只要完成下面几上简单的步骤就可以了:

Step 1:

Mac上安装XQuartz,这个直接从官网:https://www.xquartz.org/下载安装即可。XQuartz是一个开源的解决方案,用于实现在Mac OS X下运行X.org窗口管理系统。

Step 2:

在Ubutun服务器上打开X11转发功能,编辑/etc/ssh/sshd_config(ssh的服务端配置文件,注意区别于/etc/ssh/ssh_config)。

然后重启ssh服务吧:

/etc/init.d/ssh restart

Step 3:

配置mac上的ssh也开启转发功能,编辑/private/etc/ssh/ssh_config(注意是ssh_config,这是ssh的客户端配置)。贴出我的非注释部分的配置吧。

Host *
   SendEnv LANG LC_*
    ForwardX11 yes
Host *
    XAuthLocation /opt/X11/bin/xauth

Step 4:

打开XQuartz,打开mac terminal。

ssh -X {用户名}@{远程端}

完成以上几步按理说可以正常显示Ubutun上的图形或视频了,咯:

【附-可能的错误】

错误1:

在ubuntu上运行图片查看器,执行eog命令提示如下错误。

~$ eog
Failed to connect to Mir: Failed to connect to server socket: No such file or directory
Unable to init server: Could not connect: Connection refused

(eog:16919): Gtk-WARNING **: cannot open display: localhost:10.0

我寻思苦久,通过编辑Mac上用户目录下的.ssh/config文件,将文件修改成如下:

Host *
    ControlMaster auto
    #ControlPath ~/.ssh/cm_socket/%r@%h:%p
    ControlPersist 2h
    ConnectTimeout 50
    StrictHostKeyChecking no
    ServerAliveInterval 10
    ForwardX11Trusted yes
  • ControlPersist为长连接,打开之后即使关闭了所有relayssh连接,一段时间内也能无需密码重新连接。
  • ControlMaster配合ControlPath一起使用,当打开了一个relayssh连接之后,再次打开无需重复输入密码,但是关闭所有连接后,再次连接relay仍需输入密码。

错误2:

注意Ubutun上用户主目录下.Xauthority文件的属主和属组,我之前搞了一段时间没有成功就是因为.Xauthority属主不知道为什么变成了root root,而非我自己的账户,改了之后就成功了。

猜你喜欢

转载自blog.csdn.net/ChuiGeDaQiQiu/article/details/82977909
今日推荐