[ubuntu入门手册]-17-使用vnc与ssh远程管理

引言

这篇文章给大家介绍ubuntu下三种远程管理的方法,两种vnc远程图形化接入管理方式,一种ssh终端远程接入管理方式。

文章目录

0×1.使用vino-preferences开启远程桌面共享

首先给大家介绍ubuntu系统自带的远程桌面共享软件"vino-preferences",它使用的也是vnc连接方式。

服务端(被连接者)请参考下面步骤开启桌面共享:

点击启动栏"ubuntu图标"中并搜索"vino-preferences",打开"桌面共享";或者在终端中输入vino-preferences来打开它;
vino-preferences-1

客户端(连接者),点击启动栏"ubuntu图标"中并搜索"remmina",打开"Remmina远程桌面客户端";或直接在终端输入remmina;

vino-preferences-2

输入服务端设置的连接密码,连接;

vino-preferences-3

在服务端会弹出确认框(如果设置了必须确认),点击确认即允许客户端查看或控制计算机;

vino-preferences-4

服务端可以通过系统顶部托盘图标中的"断开连接",来终止客户端的控制; vino-preferences-5

这种vnc的优点:无需安装其他软件,对gnome桌面的支持很好,使用方便;缺点是,必须使用某个账户登陆计算机图形界面后,才可开启这种远程桌面,而远端连接的桌面和服务端登陆的桌面同属一个桌面环境,类似于QQ远程协助,如果想要开启多用户登陆远程桌面的功能(类似windows server远程桌面)请参考本文第二部分。

0×2.使用vncserver开启远程桌面服务

1)在服务端安装vncserver与xfce4桌面环境:

					qing@qingsword.com:~$ sudo apt-get install vnc4server xfce4
					

2)启动服务并替换桌面配置文件为xfce4

					#开启vncserver的1号桌面
					qing@qingsword.com:~$ vncserver :1

					You will require a password to access your desktops.
					Password: #输入vnc连接密码
					Verify:  #again
					New 'qingsword.com:1 (qing)' desktop is qingsword.com:1

					#开启一次vncserver桌面后,会在当前用户的家目录下生成配置文件,使用下面的命令先关闭刚才开启的这个vnc,我们需要修改一下默认的配置文件
					qing@qingsword.com:~$ vncserver -kill :1
					Killing Xvnc4 process ID 14711

					#使用vim或gedit,修改当前用户家目录下.vnc/xstartup文件
					qing@qingsword.com:~$ vim .vnc/xstartup

					#使用下面的内容,替换默认内容
					#!/bin/sh
					unset SESSION_MANAGER
					unset DBUS_SESSION_BUS_ADDRESS
					startxfce4 &

					[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
					[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
					xsetroot -solid grey
					vncconfig -iconic &

					#再次开启vnc1号桌面
					qing@qingsword.com:~$ vncserver :1

					#想要开启多个桌面只需要递增':'后面的数字,例如,开启2号桌面
					qing@qingsword.com:~$ vncserver :2
					

3)在客户端通过Remmina连接(或者任何能连接vnc的客户端软件);

vino-preferences-6

Ps:使用vncserver能在服务端开启任意多个互不干扰的远程桌面环境。

备注:xfce4桌面终端tab失效解决方法

xfce4的终端tab键因为被系统窗口占用了热键,所以无法使用,可以在终端中输入"xfwm4-settings"打开窗口管理器,选择"键盘",可以看到窗口快捷键中动作一列有"切换同一应用程序的窗口"选项,将该选项的快捷键清除。

0×3.如何让vncserver随机启动

如果我们想让vnc4server随机启动,需要一个启动脚本,一个配置文件,然后将启动脚本加入开机启动文件中,请看下面的演示:

					#1.首先切换到root,操作比较方便,有些朋友root还没有设置密码可以sudo passwd root先给root设置个密码再执行下面的操作,或者在所有命令前面加上sudo
					qing@qingsword.com:~$ su -

					#2.创建启动脚本
					root@qingsword.com:~# vim /etc/init.d/vncserver.sh

					#复制下面的内容到文件中

					unset VNCSERVERARGS
					VNCSERVERS=""
					[ -f /etc/vncserver/vncservers.conf ] && . /etc/vncserver/vncservers.conf
					prog=$"VNC server"
					 . /lib/lsb/init-functions
					 REQ_USER=$2
					 echo -n $"Starting $prog: "
					 ulimit -S -c 0 >/dev/null 2>&1
					 RETVAL=0
					 for display in ${VNCSERVERS}
					 do
					 export USER="${display##*:}"
					 if test -z "${REQ_USER}" -o "${REQ_USER}" == ${USER} ; then
					 echo -n "${display} "
					 unset BASH_ENV ENV
					 DISP="${display%%:*}"
					 export VNCUSERARGS="${VNCSERVERARGS[${DISP}]}"
					 su ${USER} -c "cd ~${USER} && [ -f .vnc/passwd ] && vncserver :${DISP} ${VNCUSERARGS}"
					 fi
					 done

					#3.添加可运行权限
					root@qingsword.com:~# chmod +x /etc/init.d/vncserver.sh

					#4.创建配置文件
					root@qingsword.com:~# mkdir /etc/vncserver
					root@qingsword.com:~# vim /etc/vncserver/vncservers.conf
					#添加下面这一句到文件中,意思是,使用qing用户的.vnc配置登陆vnc1号桌面;如果有多个用户开启了vnc,可以按照下面的格式添加,例如VNCSERVERS="2:qingsword",意思是,使用qingsword用户的.vnc配置登陆vnc2号桌面,以此类推
					VNCSERVERS="1:qing"

					#5.在rc.local中添加这个启动脚本(或者将这个启动脚本放在任何你需要的启动等级和启动目录里面)(ubuntu17以上系统,如果没有rc.local文件,说明系统使用了systemd启动方式,请忽略这一步,直接看第6步)
					root@qingsword.com:~# vim /etc/rc.local
					#在文件的exit 0前面输入下面这一行
					bash /etc/init.d/vncserver.sh

					#6.ubuntu改成systemd启动方式后,在/etc下没有rc.local这个文件了,需按照下面的方法来创建
					#首先创建service文件连接
					root@qingsword.com:~# ln -fs /lib/systemd/system/rc-local.service /etc/systemd/system/rc-local.service
					#查看新建的文件连接内容
					root@qingsword.com:~# cat /etc/systemd/system/rc-local.service
					#会发现"ExecStart="后面有一个文件路径,一般为"/etc/rc.local",根据这个文件路径,创建文件,并写入启动vncserver.sh脚本的命令
					root@qingsword.com:~# vim /etc/rc.local
					#在文件中写入下面的内容,保存退出
					#!/bin/bash
					bash /etc/init.d/vncserver.sh
					#添加可执行权限
					root@qingsword.com:~# chmod 755 /etc/rc.local
					#重新加载配置
					root@qingsword.com:~# systemctl daemon-reload
					

设置完成后,每次重启,都会自动启动vncserver并且使用用户qing的.vnc文件夹中的配置开启1号桌面等待连接,如果不需要自动启动了,移除启动文件命令即可。

0×4.安装openssh-server实现远程终端ssh登陆

上面介绍了ubuntu远程桌面的两种连接方式,这一节介绍ubuntu下的远程终端ssh的搭建。

服务端:

					#1.检查自己是否安装了ssh
					qing@qingsword.com:~$ ssh localhost
					#显示下面这个表示没有安装,如果提示输入密码,则已经安装
					ssh: connect to host localhost port 22: Connection refused

					#2.安装openssh-server
					qing@qingsword.com:~$ sudo apt-get install openssh-server

					#ssh的默认端口是22,可以通过下面的配置文件更改,找到Port 22那一行,将22替换成一个自定义的端口
					qing@qingsword.com:~$ sudo vim /etc/ssh/sshd_config
					
					#更改端口后,需要使用参数-p指定端口来连接
					qing@qingsword.com:~$ ssh -p 端口号 qingsword@192.168.1.100

					#如果想卸载ssh,请使用下面的命令,完全删除ssh(purge参数是删除安装包和配置文件)
					qing@qingsword.com:~$ sudo apt-get --purge remove openssh-server
					

客户端:

						#连接到192.168.1.100,并使用qingsword这个用户登陆ssh
						qing@qingsword.com:~$ ssh qingsword@192.168.1.100

						#ssh默认情况下不允许使用root用户登陆,如果想使用root用户登陆需要修改配置文件并重启ssh
						qing@qingsword.com:~$ sudo vim /etc/ssh/sshd_config 
						#找到"PermitRootLogin"默认值是"without-password",修改成
						PermitRootLogin yes
						#重启ssh服务即可用root用户登陆ssh
						qing@qingsword.com:~$ sudo service ssh restart
					

连接完成后在服务端使用w命令显示如下:

					#第一个 :0 是init进程,pts/14是服务器上开启的一个终端,pts/0就是远程连接上来的ssh虚拟终端,连接上来的IP地址是192.168.1.101
					qing@qingsword.com:~$ w
					USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
					qing     :0       :0               19:28   ?xdm?   2:08   0.15s init --user
					qing     pts/14   :0               19:28    6.00s  0.33s  0.01s w
					qing     pts/0    192.168.1.101    19:33   11:58   0.07s  0.07s -bash