Lazy loaded image
运维管理
step-cli 配置及使用
Words 718Read Time 2 min
2025-10-1
2025-11-10
date
related_level
slug
type
relate_date
summary
status
tags
category
last_updated
Nov 10, 2025 10:02 PM
是否已更新
orginal_page
是否推荐
参考资料
 

安装 step-cli

(可选)手动安装安装包:下载、解压并安装 step/usr/bin
  • curl -OL https://dl.smallstep.com/gh-release/cli/gh-release-header/v0.26.0/step_linux_0.26.0_amd64.tar.gz
    • 这里以linux_0.26.0_amd64 为例,注意架构和系统
  • tar -zxvf step_linux_0.26.0_amd64.tar.gz
  • mv ./step_0.26.0/bin/step /usr/bin
给终端添加 step-cli 自动补完
  • step completion $(basename $SHELL) >> ~/.$(basename $SHELL)rc
  • source ~/.$(basename $SHELL)rc
  • 测试 step -v
  • 测试 step certificate inspect https://www.baidu.com
 

step-cli 环境变量及配置文件

  • STEPPATH 存放配置文件及状态的路径
  • STEPDEBUG 设为 1 时,提供详细信息以供 debug
    • 也适用于 step-ca
  • HTTPS_PROXY, NO_PROXY 用于配置出站 HTTPS 流量的代理
$(step path)/config/defaults.json 配置文件
  • 样例如下
 

通过 context 管理复数 CA

参考资料
step 上下文管理原理
  • 上下文配置文件 contexts.json 和 current-context.json 被创建在顶层 $STEPPATH 目录中
  • CA 服务器配置和数据存储在 authorities 目录中,客户端配置被存储在 profiles 目录中
    • 分别在 authorities 树和 profiles 树中创建 defaults.json 文件
    • 两个 defaults.json 文件在运行时被合并,而 profiles 中的默认设置优先级更高
目前不支持自定迁移特定配置文件到上下文
  • 启用上下文将保留 $STEPPATH 中任何之前存在的配置或状态数据,但不会自动将现有的配置树迁移到新的上下文中
在任何 step 安装指令的阶段传递 --context [name] 标识可以定义对应标签的上下文
  • CA 客户端引导阶段 step ca bootstrap
    • step ca bootstrap \ --ca-url https://ca.internal:4443 \ --fingerprint c8d3...7aa \ --context vpn
  • CA 服务器初始化 step ca init
  • SSH 客户端引导阶段 step ssh config
  • 后续通过传递 --context [name] 标识给 step ca, step ssh, step-ca 指令来指定上下文
  • step context list [--json] 列出可用上下文
  • step context current 返回当前所在的上下文名称
  • step context select 切换对应上下文为当前上下文
  • step context remove [--force] 切换对应上下文及其相关配置
 

step-cli 核心指令

  • step ca 初始化和管理 CA
  • step context 管理 CA 机构上下文
  • step certificate 创建、撤销、验证、捆绑和以其他方式管理证书
  • step crl 初始化和管理证书撤销列表
  • step ssh 创建和管理 ssh 证书
  • step oauth 使用 oauth 2.0 & OIDC 的授权和单点登录
 

step-cli 工具

  • step path 打印当前配置文件路径
  • step version 打印当前信息
  • step completion <shell> 生成自动补全脚本
step base64 使用base64编码解码
  • echo -n This is the string to encode | step base64
  • 可选选项
    • -d 解码
      • echo VGhpcyBpcyB0aGUgc3RyaW5nIHRvIGVuY29kZQ== | step base64 -d
    • -r 移除末尾的填充字符 ==
    • -u 执行 url 安全处理
      • echo 'abc123$%^&*)_+-=~' | step base64 -u
      • echo YWJjMTIzJCVeJiooKV8rLT1-Cg== | step base64 -d -u
        • 即使没有也会自动检测
  • step crypto 加密管道
上一篇
step 配置 SSH 认证
下一篇
step ACME 管理

Comments
Loading...