问题背景

当使用未订阅的 Proxmox VE 系统时,apt-get update 会遇到 401 Unauthorized 错误,因为系统默认使用需要付费的企业源。本教程将指导您彻底禁用企业源并启用免费公共源。


解决方案

第一步:禁用 Proxmox VE 企业源

bash

# 备份并移除企业源配置
mv /etc/apt/sources.list.d/pve-enterprise.list /etc/apt/sources.list.d/pve-enterprise.list.bak

# 添加免费公共源
echo "deb http://download.proxmox.com/debian/pve bookworm pve-no-subscription" > /etc/apt/sources.list.d/pve-no-subscription.list

第二步:禁用 Ceph 企业源

bash

# 备份并禁用 Ceph 企业源(通常名为 ceph.list)
mv /etc/apt/sources.list.d/ceph.list /etc/apt/sources.list.d/ceph.list.bak

# 添加 Ceph 免费源
echo "deb http://download.proxmox.com/debian/ceph-quincy bookworm no-subscription" > /etc/apt/sources.list.d/ceph-no-subscription.list

第三步:清理残留配置

bash

# 检查是否有隐藏的企业源配置
grep -r "enterprise.proxmox.com" /etc/apt/

# 如果发现其他配置,使用 sed 注释掉
sudo sed -i '/enterprise.proxmox.com/s/^/#/' /path/to/found/file

第四步:更新系统源

bash

# 清理缓存
apt-get clean

# 更新源
apt-get update

# 修复可能的依赖问题
apt-get --fix-broken install

验证成功

执行更新命令后,应该看到类似输出:

bash

Get:1 http://download.proxmox.com/debian/pve bookworm InRelease [2,768 B]
Get:2 http://download.proxmox.com/debian/ceph-quincy bookworm InRelease [2,742 B]
...
Fetched 15.3 MB in 5s (3,123 kB/s)
Reading package lists... Done

不再出现任何 401 Unauthorizednot signed 错误


常见问题解决

1. 如果更新后仍有错误

bash

# 彻底禁用所有企业源
sudo find /etc/apt/sources.list.d/ -type f -exec sed -i '/enterprise.proxmox.com/s/^/#/' {} \;

# 强制更新
apt-get update --allow-unauthenticated

2. 恢复企业源(如果后续购买订阅)

bash

# 恢复原始配置
mv /etc/apt/sources.list.d/pve-enterprise.list.bak /etc/apt/sources.list.d/pve-enterprise.list
mv /etc/apt/sources.list.d/ceph.list.bak /etc/apt/sources.list.d/ceph.list

# 删除免费源
rm /etc/apt/sources.list.d/pve-no-subscription.list
rm /etc/apt/sources.list.d/ceph-no-subscription.list

# 获取订阅密钥(从客户门户)
apt-get update

重要说明

  1. 免费源功能:免费公共源提供与企业源完全相同的软件包,仅缺少官方技术支持

  2. 控制台提示:禁用企业源后,Proxmox 控制台会显示"无有效订阅",但不影响功能使用

  3. 系统安全:免费源同样提供安全更新,保持系统及时更新即可

  4. Ceph 兼容性:使用 ceph-quincy 源可确保与 Proxmox VE 7.x/8.x 完全兼容

执行完本教程后,您的系统将能正常接收更新,同时避免烦人的授权错误提示。