ubuntu远程桌面每次重启后vnc密码改变

ubuntu 自带的远程桌面,在有的电脑上重启后密码不会改变,在有的电脑上每次重启后vnc密码都会改变。

在这里找到了答案和解决办法:        https://askubuntu.com/questions/1403943/22-04-remote-desktop-sharing-authentication-password-changes-every-reboot

下面是对两个回答的翻译。

第一个(方法不推荐):

嗯 - 我可以告诉你如何修复这一特定方式(这是我唯一知道的方式),但这会为你带来另一些麻烦。

问题在于在Ubuntu 22.04中,默认情况下,系统中的所有用户名和密码都使用你的用户名密码进行加密。这被存储在一个称为“密钥环”的地方。问题是VNC服务器在加载时密钥环未解锁,因此无法访问存储的VNC密码(因为它被加密),因此每次启动时都会自动生成一个新的密码。

因此,如果你在用户登录时自动启动,Ubuntu 22.04在自动启动期间不会自动解锁密钥环。为了解决这个问题,转到“实用工具”、“密码和密钥”,右键单击“默认密钥环”,选择“更改密码”。它会要求你的用户名密码。输入那个。然后对于新密码,不要输入任何内容。留空即可。它会警告你密钥环上存储的所有密码将变得未加密并保持未加密。如果你能接受这个风险,就接受它。

然后返回到远程桌面,确保设置了你想要的密码,然后每次重新启动时,该密码将保持不变。

希望这一切都说得通 :)

第二个(推荐):

我找到了一个不太安全的解决方案来解决这个问题。互联网上通常提出的解决方案是使用“密码和密钥”应用程序为登录密钥环设置空密码。然而,这是非常不安全的,因为设备上的所有密码都将以纯文本形式存储。

相反,我决定在“密码和密钥”应用程序中创建一个没有密码并将其设置为默认密钥环的新密钥环。然后,我继续从登录密钥环中删除VNC密码。然后重新启动计算机以确保新密钥环是默认的。重新启动后,我在屏幕共享设置中重新输入了VNC密码。这将把VNC密码存储在新的不安全密钥环中。然后回到“密码和密钥”应用程序,并将登录密钥环再次设置为默认。再次重新启动,现在VNC密码保持保存,而默认密钥环也恢复到登录密钥环,确保将来在设备上保存的所有密码都将被加密。

因此,实质上,我只是将保存所有密码为纯文本的不安全性降低到仅将VNC密码保存为纯文本。

### 配置 VNC 实现 Ubuntu 桌面远程连接 #### 安装必要的软件包 为了使 VNC 正常工作,在目标机器上需先安装 `ubuntu-desktop` 和 `tigervnc-standalone-server` 或者其他版本的 VNC 服务器。 ```bash sudo apt update && sudo apt install ubuntu-desktop tigervnc-standalone-server -y ``` #### 创建一个新的 VNC 用户并设置密码 创建一个专门用于 VNC 访问的新用户可以提高安全性。之后切换至新创建的用户来初始化 VNC 密码以及配置文件: ```bash adduser vncuser su - vncuser mkdir ~/.vnc vncpasswd ``` 此命令会提示输入两次密码,这个密码就是将来用来登录 VNC 的凭证[^1]。 #### 启动 VNC Server 并测试本地访问 首次启动 VNC server 可以通过下面这条指令完成,并指定分辨率和其他参数: ```bash vncserver :1 -geometry 1920x1080 -depth 24 ``` 此时应该可以在本机或者其他设备上使用 VNC viewer 来验证是否能够成功建立连接了。如果一切顺利的话,应当能看到完整的图形界面[^2]。 #### 修改防火墙规则开放相应端口 为了让外部网络中的客户端也能访问到这台计算机上的 VNC service, 必须调整系统的防火墙设定允许特定范围内的 TCP 端口号通行,默认情况下第一个实例使用的通常是5901端口(即`:1`),因此需要打开它: ```bash ufw allow 5901/tcp ``` 对于多于一台以上的 VNC session,则依次类推增加相应的端口数量比如5902对应的是第二个session(`:2`)以此类推[^3]。 #### 设置开机自动运行 VNC Service 编辑 `/etc/systemd/system/vncserver@:1.service` 文件定义 systemd 单元描述符如下所示: ```ini [Unit] Description=Start TightVNC server at startup After=syslog.target network.target [Service] Type=forking User=vncuser PAMName=login PIDFile=/home/vncuser/.vnc/%H%i.pid ExecStartPre=-/usr/bin/vncserver -kill :%i > /dev/null 2>&1 ExecStart=/usr/bin/vncserver -depth 24 -geometry 1280x800 :%i ExecStop=/usr/bin/vncserver -kill :%i [Install] WantedBy=multi-user.target ``` 保存更改后执行以下两条命令使得修改生效并且确认服务状态良好: ```bash systemctl daemon-reload systemctl enable vncserver@:1.service systemctl start vncserver@:1.service ``` 这样即使重启系统也不会影响已有的 VNC configuration。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值