在离线 Openstack 环境中将 Ubuntu Cloud 安装为支持 RDP 的远程桌面
在此页
- 离线安装
- 下载 Ubuntu 云镜像
- 创建两个虚拟机
- 检查 IP 连接
- 配置SSH
- 安装Xfce4
- 安装 XRDP
- 安装网络浏览器
在本教程中,我们将部署一个启用 RDP 的 Linux 主机作为受限访问(无互联网连接)环境中的远程桌面。另一个要求是多个用户可以共享此主机的相同凭据。
为此,我们将使用 Ubuntu 云服务器的两个镜像实例,一个在线,另一个离线,以便可以在离线服务器上部署正确的包。此外,选择 Xfce4 桌面是因为它能够为单个用户打开多个会话。到目前为止,编写教程时,Gnome 并未指望使用此功能。
离线安装
为了允许在离线系统中安装,我们将在在线 VirtualBox 中部署相同的系统,对每个包使用以下命令序列:
在在线系统上:
sudo apt-get install --download-only <package list>
将包从在线 /var/cache/apt/archives 复制到 PC(使用 sftp 客户端或 VirtualBox 共享文件夹)以及从 PC 复制到离线系统。然后,在两个系统上:
dpkg -i /var/cache/apt/archives/*.deb
最后,清理 apt 档案:
apt-get clean
下载 Ubuntu 云镜像
使用此链接。对于 OpenStack,我们将使用 img 扩展,相当于 qcow2。对于 VirtualBox,我们需要 ova,它已经包含一个 vmdk 磁盘文件。
创建两个虚拟机
在 OpenStack 中:
上传图片一目了然:
glance image-create --name "Ubuntu Cloud image" --file ubuntu-18.04-server-cloudimg-amd64.img --is-public False --container-format bare --disk-format qcow2
创建一个热模板,这里以一个固定IP和额外的磁盘空间为例:
heat_template_version: 2018-04-30
description: Remote Desktop deployment
resources:
port_vm:
type: OS::Neutron::Port
properties:
network: <network name>
fixed_ips:
- subnet: <subnet name>
ip_address: <ip address>
server:
type: OS::Nova::Server
properties:
name: <instance name>
flavor: <flavor name>
availability_zone: <zone name>
networks:
- port: { get_resource: port_vm }
new_volume:
type: OS::Cinder::Volume
properties:
size: <disk space in MB>
volume_attachment:
type: OS::Cinder::VolumeAttachment
properties:
volume_id: { get_resource: new_volume }
instance_uuid: { get_resource: server }
创建堆栈,实例自动启动:
heat stack-create -f <FILE> -e <FILE> <STACK_NAME>
连接到控制台,确保 VM 成功启动。使用 Ctrl-Alt Del 重新启动并按 Left-Shift 以访问恢复模式并更改 root 密码。
在虚拟盒子中:
导入 ova 文件作为新设备。一定要激活一个串口,它可能会保持断开状态,用于绕过云初始化过程中的一个步骤。此外,请确保选择网络桥接适配器并关联到具有 Internet 访问权限的主机网络接口。
按下 Left-Shift 启动并进入 GRUB 恢复模式。在那里您可以将 root 密码更改为您喜欢的任何密码。这次可以正常开机登录。
运行 parted 以更正分区数据:

接受修复 GPT,然后使用 \resizepart 来利用磁盘中的整个现有空间:

退出 parted 并使用 resize2fs 调整文件系统:

现在 df -h 应该显示 10G available。
检查 IP 连接
尽管 Openstack 可能会通过 DHCP 提供正确的 IP 地址,但我们将在两种环境中配置一个静态 IP 地址。在 /etc/netplan 中创建一个扩展名为 yaml 的文件,相应地设置 IP 地址和网关:
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: no
addresses: [192.168.1.100/24]
gateway4: 192.168.1.1
nameservers:
addresses: [192.168.1.1]
应用新配置:
netplan apply
现在应该可以从 VM 连接到网关,从您的 PC 连接到两个 VM。
一旦 VirtualBox VM 中提供了互联网连接,请务必更新 apt:
apt-get update
请注意,如果选择安装 Gnome 而不是 Xfce4 桌面,您需要在完成此安装后立即将 Networkd 替换为 NetworkManager。
配置SSH
我们将启用 root ssh 访问。编辑默认的 /etc/ssh/sshd_config:
- 启用所有 3 个主机密钥
- 将 PermitRootLogin 设置为是
- 禁用 HostBasedAuthentication
- 启用明文密码(PasswordAuthentication 是,PermitEmptyPasswords 否)
还要检查 /etc/ssh 是否存在主机密钥文件,在 VirtualBox 中它们通常会丢失。使用 ssh-keygen 生成新的:
ssh-keygen -f /etc/ssh/ssh_host_rsa_key -t rsa -N ""
ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -t ecdsa -N ""
ssh-keygen -f /etc/ssh/ssh_host_ed25519_key -t ed25519 -N ""
重启服务:
service sshd restart
现在您必须能够通过 ssh 连接到新的 VM。如果愿意,您可以生成一个私钥/公钥对来替换明文密码。
安装 Xfce4
这些是在 Ubuntu 中安装 xfce4 桌面的步骤。
在虚拟盒子中:
apt-get update
apt-get install --download-only xfce4 xfce4-terminal gnome-icon-theme-full tango-icon-theme
dpkg -i /var/cache/apt/archives/*.deb
然后将 deb 包从 /var/cache/apt/archives 复制到 Openstack VM。不要忘记清理 /var/cache/apt/archives。
在开放堆栈中:
dpkg -i /var/cache/apt/archives/*.deb
apt-get clean
接下来,为两个虚拟机添加新用户 ubuntu 并将其添加到 sudo 组:
adduser ubuntu
usermod -aG sudo ubuntu
只需点击 ENTER 回答所有问题即可。主目录会自动添加。
安装 XRDP
将用户更改为 ubuntu,以便 XRDP 在 /home/ubuntu 中执行所需的配置。
在虚拟盒子中:
sudo apt-get install --download-only xrdp
sudo dpkg -i /var/cache/apt/archives/*.deb
将 deb 包从 /var/cache/apt/archives 复制到 Openstack VM。清理 /var/cache/apt/archives。
在开放堆栈中:
sudo dpkg -i /var/cache/apt/archives/*.deb
sudo apt-get clean
在两者上配置 XRDP:
编辑 /etc/xrdp/sesman.ini 并设置 Policy=UBDC。这会启用具有相同用户名的多个会话。
编辑/etc/xrdp/startwm.sh,在最后添加startxfce4:
#!/bin/sh
if [ -r /etc/default/locale ]; then
. /etc/default/locale
export LANG LANGUAGE
fi
unset SESSION_MANAGER
unset DBUS_SESSION_BUS_ADDRESS
startxfce4
重启 XRDP 服务:
sudo service xrdp restart
安装网络浏览器
Xfce4需要添加Web浏览器。在 Internet 上搜索 Google Chrome deb 并使用 dpkg 安装它。
您可以直接从 Ubuntu 存储库获取 Firefox。
在虚拟盒子中:
sudo apt-get install --download-only firefox
sudo dpkg -i /var/cache/apt/archives/*.deb
将 deb 包从 /var/cache/apt/archives 复制到 Openstack VM。清理 /var/cache/apt/archives。
在开放堆栈中:
sudo dpkg -i /var/cache/apt/archives/*.deb
sudo apt-get clean
在任务栏和/或桌面中为每个浏览器添加快捷方式。
就是这样。打开到服务器的多个 RDP 会话并检查一切是否正常。
干杯!