Remote Connect
SSHD
Check Service
Ubuntu 默认不安装 SSH 服务,可以通过命令检查
1 | ps -e | grep ssh |
Install Service
1 | sudo apt-get install ssh |
Start Service
1 | sudo /etc/init.d/ssh start |
Config File
1 | sudo gedit /etc/ssh/sshd_config |
修改参数 PermitRootLogin yes
Restart Service
1 | service ssh restart |
Add ssh Key
制作密钥对:
ssh-keygen
在服务器上安装公钥:
cat id_rsa.pub >> ~/.ssh/authorized_keys
- 文件
id_rsa.pub
所在目录~/.ssh/
- 目录权限:
chmod 700 ~/.ssh
- 文件权限:
chmod 600 authorized_keys
- 文件
编辑配置文件:
/etc/ssh/sshd_config
1
2
3
4
5
6RSAAuthentication yes
PubkeyAuthentication yes
# 允许 root 用户登录
PermitRootLogin yes
# 禁止密码登录
PasswordAuthentication no重启SSH服务:
service sshd restart
将私钥文件下载到客户端
VSCode 直接访问
~/.ssh/
目录
Vino-Serv
Install Vino-Serv
在ubuntu 20.04 桌面发行版打开屏幕共享
功能,步骤如下:
1 | 设置-->共享-->屏幕共享 |
Manage
查看桌面应用服务的状况
查看当前用户占用的共享桌面端口lsof -i:5900
1 | zfb@my-Server:~/build$ lsof -i:5900 |
本用户只能看到自己占用的端口,一般从5900
开始,一个用户占用一个,只有开启共享的用户才占用。例如,用户root1
和用户zfb
都开启了共享,则用户zfb
执行命令lsof -i:5900
、lsof -i:5901
和lsof -i:5902
,只有一个命令有返回结果,即自己占用的那个端口。但是,使用命令ss -lnt
可以看到5900-5902
端口都在被占用,只是无法看到具体进程和用户
xRDP
支持 Windows 的 远程桌面协议(RDP)
Install Ubuntu Desktop
如果使用的就是UBUNTU桌面版,则此步忽略。
- 安装Gnome,它是UBUNTU 20.04 的默认桌面环境
- 安装Xfce,它是快速、稳定、轻量级桌面环境
1 | sudo apt update |
Install xRDP
Xrdp 包:支持微软 Remote Desktop Protocol(RDP)。
1 | # 安装脚本 |
Start xRDP
1 | sudo systemctl status xrdp |
add xRDP user
默认情况下,xRDP 使用 /etc/ssl/private/ssl-cert-snakeoil.key
,它仅仅对ssl-cert
用户组成员可读,为了能够登录远程桌面,运行下面的命令,将用户xrdp
添加到用户组中
1 | sudo useradd xrdp ssl-cert # 系统报错不用管 |
Config xRDP
xRDP 的配置文件在/etc/xrdp
。使用默认的X Window 桌面环境(Gnome或者XFCE)。主要的配置文件xrdp.ini
被分成不同的段,允许设置全局配置(如:安全、监听地址、创建不同的 xRDP 会话等)。
config xRDP Desktop
编辑startwm.sh
中可修改启动桌面。
config xRDP Firewall
xRDP 守护程序在所有的网络接口上监听端口3389
,如果在服务器上有防火墙需要打开这个端口。例如:允许从某类IP地址访问服务器,执行命令
1 | sudo ufw allow from 192.168.33.0/24 to any prot 3389 |
如果允许从任何地方访问
1 | sudo ufw allow 3389 |
增加安全,考虑 xRDP 仅仅监听 localhost
,并且创建一个 SSH 隧道,将本地机器的 3389
端口到远程服务器的同样端口之间进行流量加密。
config multi xRDP Desktop
如果想开启多个桌面,可以使用安装 xrdp 软件包,此时可以通过 3389 商品利用 rdp 协议登录 XOrg 桌面,多个用户都可以登录,并且可以同时登录,但是物理机器需要保留在登录界面。
注:同一个用户,本地和远程同时只能登录一个。
xrdp 的配置文件:/etc/xrdp/xrdp.ini
1 | [xrdp8] |
VNCServer
Install VNCServer
1 | #更新 |
Config VNCServer
1 | #关闭vncserver :1窗口 |
在xstartup文件中更新为如下内容:
1 |
|
然后设置该文档的权限
1 | chmod u+x ~/.vnc/xstartup |
vino-server vs. xRDP vs. vnc-server
服务器比较
vino-server | xRDP | vnc-server | |
---|---|---|---|
优点 | 系统自带,配置简单 | 配置简单,可用windows自带的远程桌面登录 | 配置简单,但不一定能成功连接远程桌面 |
缺点 | 重启后必须登录个人桌面后才可启动 | root用户登陆不容易出错,普通用户容易出错 | 出错不好解决 |
注:建议vino-server
+Xrdp
。因为Xrdp
容易出错,出错后使用vino-server
登录上去修补一下。vino-server
使用过程中比较消耗资源。
Client
remmina
打开软件remmina
,选择VNC
协议,输入要连接的机器的地址192.168.10.11:5900
(附带端口),然后会提示输入密码,这里要输入5900
端口对应的那个用户的密码(共享桌面密码,不是用户密码),即可成功看到桌面。
vnc viewer
下载vnc viewer并安装,打开软件,根据提示输入ip地址192.168.10.11:5900
,如果提示加密策略不一致。那么需要回到开启桌面共享的ubuntu机器上,输入以下命令关闭加密即可gsettings set org.gnome.Vino require-encryption false
或者安装dconf-editor
工具进行配置,输入以下命令即可安装:sudo apt-get install dconf-editor
然后桌面搜索dconf-editor
打开,依次展开org->gnome->desktop->remote-access
,然后取消require-encryption
的勾选即可
mstsc
先安装 xrdp 协议,登录时使用 mstsc 即可,但是登录后会出现黑屏现象,而且会跟 vnc viewr 登录冲突。
注1:黑屏问题的解决方案,编辑 /etc/xrdp/startwm.sh
,添加:
1 | unset DBUS_SESSION_BUS_ADDRESS |
重启服务 sudo systemctl restart xrdp.service
注2:Gnome 的原始桌面没有左侧的任务栏,也没有最小化按钮。安装 sudo apt install gnome-shell-extension-prefs
,运行 Extensions
,打开设置按钮;再依据下列顺序执行操作即可得到原生桌面的效果:
1 | vim ~/.xsessionrc # 添加配置文件 |
TigerVNC
Ubuntu 20.0 以后,使用 tigervnc 代替 vnc4server 包。
注:我没有使用这个服务,有需要时可以查询其他人的说明。
Config
1 | # 查看屏幕支持的分辨率 |
注:
1.可以使用 vnc viewer 自带的适应方式去适应不同的分辨率
2.可以使用 Ubuntu 的桌面右键菜单中的「显示设置」,直接调整分辨率
3.可以对 终端 窗口进行显示比例修改
4.配置 GPU : sudo nvidia-settings
选择 Ubuntu 使用哪个显卡
Errors
Authentication Required
- 需要授权来创建色彩管理设备 / Authentication is required to create a color managed device
- 需要授权来移除色彩管理设备 / Authentication is required to remove a color managed device
- 刷新系统软件源需要认证 / Authentication is required to refresh the system repositories
Authentication is required to create a color managed device
创建文件 /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla
并写入内容:
1 | [Allow Colord all Users] |
Authentication is required to refresh the system repositories
创建文件 /etc/polkit-1/localauthority/50-local.d/46-allow-packagekit.pkla
并写入内容:
1 | [Allow Refresh Repository all Users] |
Others
VNC连接提示不支持安全类型
关闭远程连接加密请求
1
sudo apt install dconf-editor
进入并且关闭“org->gnome->desktop->remote access->require encryption”
SSH登录的系统无法使用vnc viewer登录
必须在服务器跟前登录桌面后才可以使用。
解决方法:
- 查看当前的桌面管理器
1
cat /etc/X11/default-display-manager
- 编辑文件中指定的桌面管理器,例如:/usr/sbin/gdm3,就使用下列指令更改
1
sudo vim /etc/gdm3/custom.conf
修改下面三行内容
1
2
3WaylandEnable=false
AutomaticLoginEnable=true
AutomaticLogin=user1 # 这个是自己的用户名
References
gnome - (xRDP) Desktop looks different when connecting remotely - Ask Ubuntu