设备凭证

设备凭证把认证数据与连接、Inventory 元数据分离。

同一条凭证可以被多个已保存连接或临时连接引用,因此不需要在每个目标定义中重复保存用户名、认证材料和 Enable 密钥。

凭证模型

每条凭证包含:

  • 由字母、数字、_、. 或 - 组成的唯一名称
  • 必填的 SSH 登录用户名,以及一种认证方式:密码、加密内联私钥、运行时私钥文件或 SSH agent
  • 可选的私钥口令
  • 可选的 Enable 阶段
  • 可选的 Enable 密钥;启用 Enable 但没有密钥时,rauto 会在密码提示处直接回车

已保存连接只保存稳定的 credential_id 引用。凭证查询只返回元数据和密钥存在标记,不会返回明文密钥或加密引用。

创建与查看凭证

优先通过安全交互提示创建凭证,避免密钥进入 shell 历史:

rauto credential add network-admin

自动化场景也可以显式传入字段:

rauto credential add network-admin \
  --login-username netops \
  --login-secret '<login-secret>' \
  --enable \
  --enable-secret '<enable-secret>'

rauto credential add linux-inline-key \
  --login-username root \
  --auth-type private-key \
  --private-key ~/.ssh/id_ed25519

rauto credential add linux-runtime-key \
  --login-username root \
  --auth-type private-key-file \
  --private-key-file /run/secrets/id_ed25519

rauto credential add automation-agent \
  --login-username automation \
  --auth-type agent

查看已保存的元数据:

rauto credential list
rauto credential show network-admin
rauto credential list --json

更新与删除

rauto credential update network-admin --name network-ops
rauto credential update network-ops --enable
rauto credential update network-ops --disable-enable
rauto credential delete network-ops

更新时省略 --login-secret 会保留当前登录密钥。启用 Enable 的凭证既可以使用已保存密钥,也可以使用空回车进入 Enable 的流程。

被一个或多个连接引用的凭证不能删除,必须先解除引用。Web 凭证工作区会直接列出引用它的连接名称。

批量导入

凭证导入支持 CSV 与 Excel,并按名称执行 upsert:

rauto credential import ./credentials.csv
rauto credential import ./credentials.xlsx --json

支持 .csv、.xlsx、.xls、.xlsm 和 .xlsb。

推荐表头:

name,login_username,auth_type,login_secret,private_key,private_key_path,passphrase,enable_secret,enable_enabled
network-admin,netops,password,replace-with-login-secret,,,,replace-with-enable-secret,true
linux-runtime-key,root,private_key_file,,,/run/secrets/id_ed25519,,,false

新增凭证必须提供 name、login_username 和 auth_type 所要求的字段。认证类型不变时,更新已有凭证的认证字段留空会保留原值;enable_secret 留空会清除已保存的 Enable 密钥。布尔值支持 true/false、1/0、yes/no 或 是/否。

导入文件包含明文密钥,完成后应妥善保管或删除。导入报告只包含行号、名称、数量与校验错误,不会回传密钥。

在目标连接中使用凭证

直连目标按名称或稳定 ID 引用凭证:

rauto connection test \
  --host 192.168.1.1 \
  --credential network-admin \
  --device-profile cisco_ios

rauto exec "show version" \
  --host 192.168.1.1 \
  --credential network-admin

也可以把凭证引用保存到可复用连接中:

rauto connection add core-sw-01 \
  --host 192.168.1.1 \
  --credential network-admin \
  --ssh-security balanced \
  --device-profile cisco_ios

之后使用 --connection core-sw-01 的命令只会在执行内存中解析对应凭证。

Web 凭证工作区

Web 控制台提供独立的设备凭证页面,用于:

  • 按名称、用户名或引用连接搜索凭证
  • 创建和更新认证记录
  • 开启或关闭 Enable 阶段
  • 删除前查看引用关系
  • 导入 CSV / Excel,并下载起始模板
  • 不离开连接编辑器即可新建并选择凭证

rauto Web 设备凭证工作区,展示可复用认证信息与连接引用

存储与备份行为

密码、内联私钥和私钥口令加密保存在 ~/.rauto/rauto.db,主密钥位于操作系统 keyring。私钥文件凭证只保存路径并在连接时读取;SSH agent 凭证使用 rauto 进程可访问的 agent。

备份归档包含数据库密文,但不会导出本机 keyring 主密钥。恢复到另一台机器或另一个系统账号后,需要重新编辑并保存受影响凭证,或通过经过批准的平台流程迁移同一主密钥。