如何使用命令行打开远程电脑的图形界面?
生活中,也许你会碰到这些情况,比如在家想处理一下公司的电脑上业务,或者是需要把你做好的网页上传到云服务器中。
方法其实有很多种,今天我们来聊下其中比较 Geek 的一种做法,通过在命令行中输入命令来实现远程登录。
1 SSH 是什么?
我们需要用到一个网络协议——SSH ,即安全外壳协议(Secure Shell)。
如其名所示,它是一个专门为远程登录会话和其他网络服务提供安全性的协议,利用 SSH 协议可以有效防止在远程管理过程中的信息泄露。
一开始它只是 Unix 系统上的一个程序,由于安全好用,很快扩展到其他平台。我们这里只讨论在 Linux shell 中的用法。
2 基本用法
一般情况下,我们使用下面这条命令进行登陆,user_name 是你的用户名,ip_address 是你的远程 IP 地址。
1 | ssh user_name@ip_address |
SSH 的默认端口是 22,你还可以使用 -p 来显式指定端口,比如指定 1314 端口。
1 | ssh -p 1314 user_name@ip_address |
当你输入上述的其中一行命令后,它会提示你输入密码。如果密码验证成功,恭喜你!可以进行远程操作了。
但这样有一个问题,是如果我想编辑远程很长一段代码怎么办,使用 vim 在命令行中编辑及其不方便(-大佬:命令没记住就在这瞎说,你看我怎么用的那么六!-我:。。。),那 SSH 可以调用图形界面吗?
3 调用图形界面
没错,在 SSH 中是可以做到调用图形界面的!
首先在服务器端(即你要连接的远端电脑) 做如下配置:
1 | # 安装SSH服务器 |
在 sshd_config 设置为 X11Forwarding yes,一般操作为去掉 # ,把 no 改为 yes。
启动服务命令:
1 | sudo /etc/init.d/ssh restart |
然后在客户端(你本地在用的电脑)做如下配置:
1 | # 安装ssh客户端 |
在ssh_config设置:
1 | ForwardAgent yes |
连接命令:
1 | ssh -X user_name@ip_address |
将远端屏幕映射到本地:
1 | export DISPLAY=localhost:10.0 |
在命令行中调用时钟程序进行测试:
1 | xclock |
如果你的操作没有问题,你很快就会看到一个时钟出现在你的本地桌面上!
4 注意
- 一般情况下,由于网络传输速度问题,尽量不要开大型软件,否则会很卡。
- 使用系统自带软件效果会比较好,可是我的 Atom 怎么都打开不了,最后只能用 Gedit 看了。
- 如果根据教程操作但出现异常,请在后台给我留言。我们商量着是否能一起解决它。
- 最后的最后提一个问题:如果你要连接的远程电脑在内网里怎么办?没有公网IP就没法直接连接啊!
如何使用命令行打开远程电脑的图形界面?