Skip to main content
大多数 Lager Box 不需要登录 —— 您直接运行命令即可。但有些 Box 位于访问网关之后:这是一个做认证的代理,只允许被指派的用户访问该 Box。对这类 Box,Lager 会请您登录一次,之后每条命令都自动完成认证。 普通的 Lager Box 从不提示登录。只有当有人特意把某台 Box 放在网关之后时,您才会看到它。

登录

第一次对受控 Box 运行命令时,它会明确告诉您该怎么做。提示信息中会自动填好 URL:
系统会询问您的账户邮箱和密码(如果您的账户启用了 MFA,还会询问 MFA 验证码)。会话保存在 ~/.lager_gateway_auth(只有您本人可读),并会自动续期,因此您很少需要登录第二次。此后,lager hellolager python、各种 Net 命令,以及其他所有命令,对那台 Box 都可以直接工作。

非交互式登录

两项凭据都可以作为选项传入,而不必等待提示,这正是 CI 作业所需要的:
在命令行上传入的密码会通过进程列表被其他用户看到,并且会写入您的 shell 历史。请像上面那样从密钥存储或环境变量中读取它,而不要直接输入明文。
如果该账户启用了 MFA,仅有这两个选项还不够。CLI 仍会提示输入 MFA 验证码,因此登录不是完全无人值守的。自动化请使用未启用 MFA 的账户。

用令牌代替登录

CI 作业没有”人”的身份。如果您的认证服务器可以签发机器令牌,请把该令牌交给作业,并去掉登录步骤:
CLI 会随每个发往 Box 的请求发送这个令牌。它优先于任何已保存的会话,并且从不续期。它不会向 ~/.lager_gateway_auth 写入任何内容,因此作业不会在运行器上留下凭据。空值或只含空白字符的值视为未设置。 如果网关拒绝该令牌,命令会立即失败,并指出拒绝它的认证服务器。此时没有可退回的第二种凭据。

检查您的状态

当情况看起来不对时,lager whoami 是第一个要运行的命令:
它显示四项内容:
  • 您已登录哪些服务器
  • 您以什么身份登录
  • 每个会话何时过期
  • CLI 看到了哪些受控 Box
这样一眼就能区分三种问题:“未登录”、“登录的账户不对”,以及”已登录但没有权限”。

常见提示及其含义

如果您在较旧的 Lager 版本上遇到这些提示,请先升级 —— 登录支持需要较新的 CLI:

面向管理员

决定某台 Box 是否需要登录、以及谁可以使用它的,是您的控制平面面板,而不是 CLI。请先把用户指派到该 Box,然后打开它的访问守卫;被拒绝的尝试会被记录,这样您就能看到谁需要访问权限。