跳转到内容
搜索 Rocky Linux 文档

    浏览当前文档目录

    Rocky 10:Web 控制台能做什么,什么仍该用 SSH

    Rocky Linux 10.2 Server 组虚拟机,cockpit 356-1.el10.rocky.0.1。用 SSH 隧道在浏览器里实际登录并操作,截图取自真实渲染:

    • public/evidence/cockpit/rocky-login.png
    • public/evidence/cockpit/rocky-overview.png
    $ rpm -q cockpit cockpit-ws
    cockpit-356-1.el10.rocky.0.1.x86_64
    cockpit-ws-356-1.el10.rocky.0.1.x86_64
    $ systemctl is-active cockpit.socket cockpit.service
    active
    active
    $ ss -tlnp | grep 9090
    LISTEN 0 4096 *:9090 *:*

    Server 组模式下安装器会自动启用,防火墙里也已经有 cockpit 服务:

    $ firewall-cmd --list-services
    cockpit dhcpv6-client ssh

    最小化镜像里没有,需要 dnf install cockpit + systemctl enable --now cockpit.socket 两步。

    Rocky Linux 10.2 cockpit 登录页

    登录页左侧只有账号与口令,底部写着 Server: localhost.localdomain——主机名没设过的话,这里就是它,顺手改 /etc/hostname 能让界面更好认。

    进入后顶部横幅:

    Web console is running in limited access mode.

    点 Turn on administrative access 之前,只能看不能改。我们的测试账号 labuser 本身在 wheel 组,依然如此——提权是会话级选择,不是账号属性。

    Rocky Linux 10.2 cockpit 概览页

    概览页值得注意的三处:

    1. Health 区直接列出失败的服务与非正常关机记录,点进去就是对应的日志;
    2. System information 有 machine-id、机型、启动时长;
    3. 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.key

    0-self-signed.cert 是第一次启动 cockpit.socket 时生成的,CN=localhost、自签、一年有效(实测 notBefore Oct 21 2026 / notAfter Nov 20 2027)。所以:

    • 每次连都会看到证书警告;
    • 用 IP 访问同样不匹配(证书里没有那个 IP);
    • 一年后要换证书,否则浏览器直接拒绝。

    /etc/cockpit/cockpit.conf 默认不存在,不必因为没有它而怀疑配置缺失。

    适合不适合
    看服务状态、点着重启批量改配置(用 Ansible)
    翻日志并搜索需要精确管道的排障
    管理 Podman 容器(cockpit-podman 已装)大批量容器编排
    看磁盘、SELinux 状态、软件更新版本敏感的生产变更
    临时打开一个终端需要留痕的审计操作

    Web 控制台的价值是降低「先 SSH 再记命令」的门槛,不是替代命令行。真正的变更仍建议脚本化。

    # 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.socket

    cockpit 按文件名排序取最后一个 *.cert 和同名 .key;50- 会覆盖 0-self-signed。私钥权限不是 600 会被忽略。

    • 离线机器概览页报「Loading available updates failed」:dnf 连不上仓库,不是 cockpit 坏了;
    • 受限模式当成权限故障:点一下横幅按钮即可;
    • cockpit-machines 不在默认包里:要虚拟机页面得单独装;cockpit-podman 随 Server 组装了;
    • 改完证书不重启 socket:会一直用旧证书。
    Terminal window
    systemctl is-enabled cockpit.socket
    ss -tlnp | grep 9090
    sudo firewall-cmd --list-services | grep -o cockpit
    curl -k -o /dev/null -w "%{http_code}\n" https://127.0.0.1:9090/

    检查:

    1. socket enabled 且 9090 在 LISTEN;
    2. 防火墙有 cockpit 服务;
    3. 本机 curl 返回 200(证书错误用 -k 绕过);
    4. 界面里看到的主机名与 hostnamectl 一致。

    常见问题

    cockpit 会替代 SSH 吗?

    不会。它把常用操作图形化,但脚本化运维、批量变更、精确排障仍然靠命令行。

    多人同时登录可以吗?

    可以,每个会话独立提权;用 cockpit.conf 的 allowed-users 限定范围更稳。

    能放在反代后面吗?

    能,官方支持反向代理;注意 websocket 升级与 Origin 校验,否则登录后空白页。