ssh
ssh
命令建立一条到指定机器的 SSH 连接。
该命令使用某个指定的 SSH 机密引擎进行身份验证并自动建立与主机的 SSH 连接。该操作需要挂载和配置 SSH 机密引擎。
用户必须在本地安装 ssh
—— 该命令将传递正确的参数给它,以提供类似 SSH 的一致体验。
例子
使用一次性密码(One Time Password, OTP)模式(需要安装 sshpass 实现全自动化)
$ vault ssh -mode=otp -role=my-role user@1.2.3.4
使用 CA 模式的 SSH:
$ vault ssh -mode=ca -role=my-role user@1.2.3.4
使用主机密钥验证的 CA 模式的 SSH:
$ vault ssh \
-mode=ca \
-role=my-role \
-host-key-mount-point=host-signer \
-host-key-hostnames=example.com \
user@example.com
可用标志
除了全局可用的标准标志以外,也可以配置下列标志:
输出选项
-field
(string: "")
只打印指定字段的数据。此选项优先级高于其他格式指令。信息的尾部没有换行符,使其适合通过管道与其他进程集成使用。-format
(string: "table")
—— 以给定格式打印输出。合法的格式有:table
、json
或者yaml
。该标志也可以通过环境变量VAULT_FORMAT
来设定。
SSH 选项
-mode
(string: "")
- 身份验证模式(例如ca
、dynamic
、otp
)。-mount-point
(string: "ssh/")
- SSH 机密引擎的挂载点-no-exec
(bool: false)
- 只打印生成的凭据,但不建立连接-role
(string: "")
- 用来生成密钥的角色名-strict-host-key-checking
(string: "")
- 传递给 SSH 配置选项 "StrictHostKeyChecking" 的值。默认为 ask。也可以通过设置环境变量VAULT_SSH_STRICT_HOST_KEY_CHECKING
来设置该值-user-known-hosts-file
(string: "~/.ssh/known_hosts")
- 传递给 SSH 配置选项 "UserKnownHostsFile" 的值。也可以通过设置环境变量VAULT_SSH_USER_KNOWN_HOSTS_FILE
来设置该值
CA 模式选项
-host-key-hostnames
(string: "")
- 为 CA 委派的主机名列表。默认值允许所有域名和 IP。值为使用逗号分隔的列表。也可以通过设置环境变量VAULT_SSH_HOST_KEY_HOSTNAMES
来设置该值-host-key-mount-point
(string: "")
- 签发主机密钥的 SSH 机密引擎的挂载点。如果设定该标志,Vault 将生成一个自定义的 "known_hosts" 文件并委托给指定路径上 CA 证书,使用该 CA 证书验证 SSH 连接的主机密钥。默认情况下,主机密钥通过使用用户的本地"known_hosts" 文件进行验证。此标志强制对密钥执行严格的主机检查并忽略自定义的 "known_hosts" 文件。也可以通过设置环境变量VAULT_SSH_HOST_KEY_MOUNT_POINT
来设置该值-private-key-path
(string: "~/.ssh/id_rsa")
- 用以执行身份验证的 SSH 私钥文件的路径。该标志必须使用-public-key-path
指定的公钥对应的私钥文件-public-key-path
(string: "~/.ssh/id_rsa.pub")
- 发往 Vault 用以签名的 SSH 公钥文件的地址