密码 · API 密钥变更
Edge 的凭证在所有设备上的初始值相同。在现场调试时变更一次,之后就不再改动。
Platform · AI · Studio 通过 bin/passwd.sh 这样的轮换工具来变更。Edge 没有这个工具。 Edge 的凭证都是 app.properties 中的配置键,与其他配置值完全相同——在界面上修改后重启即可。
初始值在哪里
安装完成后会生成一份出厂摘要文件。
sudo cat /etc/kopens/credentials.txt
| 项目 | 说明 |
|---|---|
| 权限 | 0600、root:root — 仅 root 可读 |
| 生成时机 | install.sh 首次启动时生成一次 |
| 内容 | UI 登录 · REST API 密钥 · MQTT · OPC UA · TSE · keystore 密码 |
这是出厂前设计用来打印一份并随密封箱一起寄出的文件。不是要长期保存在设备上的。 凭证全部变更后,请将其转移到运营保管库(vault)中,并从设备上删除。
此文件不会跟踪已变更的值。 它保留的是安装时的初始值,如果密码变更后还依赖此文件,你会看到旧值。
需要变更什么
| 键 | 用途 | 初始值 |
|---|---|---|
edge.admin_password | UI 登录密码 (admin) | admin123! |
edge.rest.api.key | REST API 认证密钥 (X-API-Key / Bearer) | 固定默认值 |
mqtt.server.password | 内置 HiveMQ 代理 (Sparkplug B 发送) | edge123! |
opc.ua.server.password | OPC UA 服务器(北向) | edge123! |
server.api_key | 平台联动令牌 | 安装时注入 |
ai.api.key | AI 功能密钥 | 为空 |
tse.server.password | 内置时序引擎(TSE) | tse123! |
前六个在环境设置界面中可见。tse.server.password 不在界面上显示,需要在配置文件中修改。
不需要变更用户名 — edge.admin_user · mqtt.server.user 等保持不变,基本运维做法是只变更密码。
方法 ① 通过界面(变更少量密钥时)
https://<gateway-ip>/ui/main登录- 右上角齿轮图标(
fa-cog) → 环境设置 (/ui/system/config) - 在对应标签页中找到密钥,输入新值 — 上表中的密钥全部以密码输入框的形式呈现(
edge.admin_password没有眼睛图标,值在界面上不可见) - 右上角保存(
fa-save) - 重启 — 仅保存还不够,需要重启才能生效
保存是指写入 app.properties 文件。运行中的进程仍然持有启动时的值,因此必须重启才能应用新值。 界面上的重启只会重新启动 Tomcat,不会关闭容器(耗时 30~90 秒)。
详见重启。
方法 ② 命令行(现场调试 — 批量变更)
bin/config.sh 可以批量变更密钥。一次变更多个,最后只需重启一次,因此现场调试时这种方法更快。
cd /opt/kopens/install/bin
./config.sh --get edge.admin_password # 현재 값 확인
./config.sh --set edge.admin_password '<new-password>'
./config.sh --set edge.rest.api.key '<new-key>'
./config.sh --set mqtt.server.password '<new-password>'
./config.sh --diff # 직전 백업과 비교
./config.sh --restart # 마지막에 한 번만
无参数运行时会在编辑器中打开文件,保存后询问是否重启。
每次变更时,app.properties.bak.YYYYMMDD_HHMMSS 备份会自动保存。
2026.08-20260825 及以上版本使用之前版本的 config.sh --set 会默默丢失值。 它用兼容符号链接代替原始文件到 sed -i,导致修改没有到达应用,重启时被覆盖。这就是"显示已变更但不生效"的症状原因。
检查设备运行的镜像标签 — IMAGE_TAG 是正式版本。
grep '^IMAGE_TAG=' /etc/kopens/version.env
如果是旧版本,请使用下面的方法③(直接编辑)或通过界面变更。
方法 ③ 直接编辑文件
配置文件的原本是一个实文件。
sudo vi /etc/kopens/conf/app.properties
sudo systemctl restart plantpulse-edge.service
conf/ 内的实文件| 路径 | 说明 |
|---|---|
/etc/kopens/conf/app.properties | 原本实文件 — 应用通过 -Dpe.conf.dir 直接读取 |
/etc/kopens/app.properties | 符号链接 — 指向上述文件的便利别名 |
在编辑器中打开符号链接会修改实文件,所以 vi 两种方式都可以。但自定义的 sed -i 脚本会删除符号链接,在原位置创建新的普通文件。 这样修改的内容会保留在 /etc/kopens/app.properties 中,而应用读取的 conf/app.properties 仍是旧值,看起来保存成功但什么都没变。
(使用 sed -i --follow-symlinks 可以避免这个问题。)
修改后请确认内容已进入实文件。
grep '^edge.admin_password' /etc/kopens/conf/app.properties
验证
# 실파일에 새 값이 들어갔는지
sudo grep -E '^(edge.admin_password|edge.rest.api.key|mqtt.server.password)' \
/etc/kopens/conf/app.properties
# UI 로그인 — 새 비밀번호로 접속되는지
# REST API — 새 키로 통과하는지
curl -k -H "X-API-Key: <new-key>" https://<gateway-ip>/api/v1/system/status
/etc/kopens/env.sh.generated(0600)中保存有安装时确定的值,形式为 export ADMIN_PASS=...。重新安装或升级时,重建 app.properties 前会先读取现有 app.properties 的值进行保留,所以通过界面或文件变更的值不会因为升级而恢复到旧值。
但边车容器本身不会更新,该文件中的值也应视为初始值。