lelogin CLI 一体化技能(安装 + 场景)
面向 Agent 的操作说明:使用 lelogin 命令行进行密钥管理与场景集成。
0) 先检查是否已安装 lelogin CLI(必须)
先检测命令是否可用:
lelogin --help
若命令不可用,通过官方网页提供的安装脚本下载并安装(按操作系统选择其一)。
Linux
bash -c "$(curl -fsSL https://www.nationauth.cn/dl/lelogin/cli/install-lelogin.sh)"
macOS
bash -c "$(curl -fsSL https://www.nationauth.cn/dl/lelogin/cli/install-lelogin.sh)"
Windows(cmd)
curl -fsSL -o %TEMP%\install-lelogin.bat https://www.nationauth.cn/dl/lelogin/cli/install-lelogin.bat && %TEMP%\install-lelogin.bat
安装完成后验证:
lelogin --help
1) 能力概览
| 能力 | 命令 | 典型用途 |
|---|---|---|
| 查看密钥列表 | lelogin list | 查看当前账号可访问的密钥与引用路径 |
| 保存/更新密钥 | lelogin save ... | 新增密钥或更新已有密钥值 |
| 删除密钥 | lelogin delete ... | 删除不再需要的密钥 |
| 子进程环境注入 | lelogin exec --env … --env-file … -- <cmd> | MySQL、SSH、应用启动 |
推荐:敏感项尽量用 exec --env-file,文件中只写 lelogin://… 引用;子进程创建时解析,避免落盘明文配置。 |
2) 常用管理操作:列表、保存、删除
列表(引用路径确认)
先看可访问列表,确认引用路径:
lelogin list
保存(新增/更新)
先查看命令帮助确认当前版本参数,再执行保存:
lelogin save --help
# 按 help 中的参数格式填写
lelogin save ...
建议:保存后立刻用 exec 做一次调用链校验,确认值可被目标程序读取。
删除
先查看命令帮助确认参数,再执行删除并复核:
lelogin delete --help
lelogin delete ...
lelogin list
建议:删除前先 list 复核引用路径,避免误删;删除后确认调用链中没有残留 lelogin://... 引用。
3) 示例 1:数据库密码在 lelogin — mysql / mysqldump
思路:MYSQL_PWD 在 env 文件中设为 lelogin://…,由 lelogin exec 解析后传给子进程,避免在 shell 历史里写密码。
自行准备 env 文件(例如 mysql.env):
DB_HOST=127.0.0.1
DB_PORT=3306
DB_USER=root
DB_NAME=mysql
MYSQL_PWD=lelogin://test/test
调用方式(由子 shell 展开 DB_* / MYSQL_PWD,勿在外层引号里提前展开空变量):
lelogin exec --env-file mysql.env -- /bin/sh -c \
'mysql --host="$DB_HOST" --port="$DB_PORT" --user="$DB_USER" \
--database="$DB_NAME" -e "SELECT 1"'
4) 示例 2:SSH 用户密码在 lelogin — ssh(配合 sshpass)
思路:SSHPASS 设为 lelogin://…,lelogin exec 解析后,sshpass -e 从环境变量读密码。
ssh.env 示例:
SSH_HOST=127.0.0.1
SSH_PORT=22
SSH_USER=root
SSHPASS=lelogin://test/test
调用方式:
lelogin exec --env-file ssh.env -- /bin/sh -c \
'sshpass -e ssh -o StrictHostKeyChecking=no -p "$SSH_PORT" \
"$SSH_USER@$SSH_HOST" "echo ok"'
未安装 sshpass 时上述命令会失败,需先安装 sshpass。
5) 示例 3:应用启动 — 仅用 lelogin exec,不落盘明文配置
思路:本地 env 文件采用 --env-file 支持的子集格式,敏感键值为 lelogin://…;应用由 lelogin 拉起,从环境变量读取已解析的值。
app.bootstrap.env 示例:
APP_NAME=demo-app
DB_PASSWORD=lelogin://test/test
REDIS_PASSWORD=lelogin://test/key2
调用方式:
lelogin exec --env-file app.bootstrap.env -- java -jar your-app.jar
# 或
lelogin exec --env-file app.bootstrap.env -- npm start
边界:CLI 不会在应用每次读磁盘上的配置文件时自动替换占位符;建议改为 Spring SPRING_APPLICATION_JSON / 环境变量绑定,或让应用直接读取环境变量。
6) 示例(阿里云 CLI):用 exec 填入 RAM AccessKey
目标:帮阿里云 CLI拿到凭据(与 配置身份凭证 互补),密钥仍存 lelogin;通过 SDK 约定的环境变量传入子进程。
准备 aliyun_cli.env(将 lelogin://… 换成你的 AccessKeyId / Secret 引用),然后:
lelogin exec --env-file aliyun_cli.env -- aliyun sts GetCallerIdentity
# 或其它子命令,例如: aliyun ecs DescribeRegions
7) 示例(邮件):账号密码在 lelogin,执行 SMTP 发送 + IMAP 收件
准备 mail.env:填写真实 SMTP/IMAP 主机、端口,以及 lelogin:// 形式的账号与密码引用;再用 lelogin exec 启动你的邮件脚本或工具(例如 python3 脚本),在脚本内从环境变量读取已解析的凭据。
8) 示例 4:行内 --env
lelogin exec \
--env TEST_KEY=lelogin://test/test \
--env KEY2_NAME=lelogin://test/key2 \
-- /bin/sh -c 'echo "$TEST_KEY" "$KEY2_NAME"'
9) Agent 自检清单
- 未在命令行参数中硬编码明文密码。
- 优先
exec --env-file,避免落盘明文配置。 - 执行前确认
LELOGIN_*或配置文件已设置。 - 若缺少
lelogin命令,先完成本技能第 0 节的网页安装步骤再执行场景。