Rocky 10:Web 控制台能做什么,什么仍该用 SSH
Rocky Linux 10.2 Server 组虚拟机,cockpit 356-1.el10.rocky.0.1。用 SSH 隧道在浏览器里实际登录并操作,截图取自真实渲染:
public/evidence/cockpit/rocky-login.pngpublic/evidence/cockpit/rocky-overview.png
$ rpm -q cockpit cockpit-wscockpit-356-1.el10.rocky.0.1.x86_64cockpit-ws-356-1.el10.rocky.0.1.x86_64$ systemctl is-active cockpit.socket cockpit.serviceactiveactive$ ss -tlnp | grep 9090LISTEN 0 4096 *:9090 *:*Server 组模式下安装器会自动启用,防火墙里也已经有 cockpit 服务:
$ firewall-cmd --list-servicescockpit dhcpv6-client ssh最小化镜像里没有,需要 dnf install cockpit + systemctl enable --now cockpit.socket 两步。
登录后的两种身份
Section titled “登录后的两种身份”
登录页左侧只有账号与口令,底部写着 Server: localhost.localdomain——主机名没设过的话,这里就是它,顺手改 /etc/hostname 能让界面更好认。
进入后顶部横幅:
Web console is running in limited access mode.
点 Turn on administrative access 之前,只能看不能改。我们的测试账号 labuser 本身在 wheel 组,依然如此——提权是会话级选择,不是账号属性。

概览页值得注意的三处:
- Health 区直接列出失败的服务与非正常关机记录,点进去就是对应的日志;
- System information 有 machine-id、机型、启动时长;
- Configuration 的 System time、Performance profile、Cryptographic policy 都是可点进去修改的入口。
证书:安装时不生成,启动时生成
Section titled “证书:安装时不生成,启动时生成”$ ls -l /etc/cockpit/ws-certs.d/-rw-r--r--. 1 root root 1379 ... 0-self-signed.cert-rw-------. 1 root root 1704 ... 0-self-signed.key0-self-signed.cert 是第一次启动 cockpit.socket 时生成的,CN=localhost、自签、一年有效(实测 notBefore Oct 21 2026 / notAfter Nov 20 2027)。所以:
- 每次连都会看到证书警告;
- 用 IP 访问同样不匹配(证书里没有那个 IP);
- 一年后要换证书,否则浏览器直接拒绝。
/etc/cockpit/cockpit.conf 默认不存在,不必因为没有它而怀疑配置缺失。
哪些操作适合放在 Web 控制台
Section titled “哪些操作适合放在 Web 控制台”| 适合 | 不适合 |
|---|---|
| 看服务状态、点着重启 | 批量改配置(用 Ansible) |
| 翻日志并搜索 | 需要精确管道的排障 |
管理 Podman 容器(cockpit-podman 已装) | 大批量容器编排 |
| 看磁盘、SELinux 状态、软件更新 | 版本敏感的生产变更 |
| 临时打开一个终端 | 需要留痕的审计操作 |
Web 控制台的价值是降低「先 SSH 再记命令」的门槛,不是替代命令行。真正的变更仍建议脚本化。
换成正式证书
Section titled “换成正式证书”# install -m 600 server.key /etc/cockpit/ws-certs.d/50-server.key# install -m 644 server.crt /etc/cockpit/ws-certs.d/50-server.cert# systemctl restart cockpit.socketcockpit 按文件名排序取最后一个 *.cert 和同名 .key;50- 会覆盖 0-self-signed。私钥权限不是 600 会被忽略。
- 离线机器概览页报「Loading available updates failed」:dnf 连不上仓库,不是 cockpit 坏了;
- 受限模式当成权限故障:点一下横幅按钮即可;
cockpit-machines不在默认包里:要虚拟机页面得单独装;cockpit-podman随 Server 组装了;- 改完证书不重启 socket:会一直用旧证书。
练习:从命令行核对界面
Section titled “练习:从命令行核对界面”systemctl is-enabled cockpit.socketss -tlnp | grep 9090sudo firewall-cmd --list-services | grep -o cockpitcurl -k -o /dev/null -w "%{http_code}\n" https://127.0.0.1:9090/检查:
- socket enabled 且 9090 在 LISTEN;
- 防火墙有 cockpit 服务;
- 本机 curl 返回 200(证书错误用 -k 绕过);
- 界面里看到的主机名与
hostnamectl一致。
常见问题
cockpit 会替代 SSH 吗?
不会。它把常用操作图形化,但脚本化运维、批量变更、精确排障仍然靠命令行。
多人同时登录可以吗?
可以,每个会话独立提权;用 cockpit.conf 的 allowed-users 限定范围更稳。
能放在反代后面吗?
能,官方支持反向代理;注意 websocket 升级与 Origin 校验,否则登录后空白页。
- 容器管理:/quadlet-services/
- 日志排查:/journald-logging/
- 防火墙:/firewalld-zones/