Proxmox VE 恢复 root SSH 登录


Proxmox VE 的各种说明里都是让进单用户模式去改密码,之前试过几个古老版本,live usb载入 + chroot + passwd 改出来的root密码都无效,不知道原因。

现在换另外一个方案,增加 ssh authorized_keys。

在 pve里,authorized_keys 使用的是symbolic link,链接到了 /etc/pve/priv/authorized_keys

# ls -al root/.ssh/
total 24
drwxr-xr-x 2 root root 4096 Mar 24  2021 .
drwx------ 3 root root 4096 Dec 11  2020 ..
lrwxrwxrwx 1 root root   29 Dec 11  2020 authorized_keys -> /etc/pve/priv/authorized_keys

根据 PVE 的wiki (https://pve.proxmox.com/wiki/Proxmox_Cluster_File_System_(pmxcfs)#_recovery) ,/etc/pve 使用的是他家的 pmxcfs 文件系统,数据实际存储在 /
var/lib/pve-cluster/config.db

file 一下,可以看出是 sqlite3,打开,只有一张表 tree,定义如下:

CREATE TABLE tree (  inode INTEGER PRIMARY KEY NOT NULL,  parent INTEGER NOT NULL CHECK(typeof(parent)=='integer'),  version INTEGER NOT NULL CHECK(typeof(version)=='integer'),  writer INTEGER NOT NULL CHECK(typeof(writer)=='integer'),  mtime INTEGER NOT NULL CHECK(typeof(mtime)=='integer'),  type INTEGER NOT NULL CHECK(typeof(type)=='integer'),  name TEXT NOT NULL,  data BLOB);

特别简单。

改数据就直接 update 表。


Leave a Reply

Your email address will not be published. Required fields are marked *