语法
选项
参数
用法
在 Box 上执行命令
带COMMAND 时,lager ssh 的行为与 ssh user@host <command> 相同。它在 Box 上运行该命令,把输出实时回传,并以该命令的退出码退出。此时没有交互式 shell。这在编写脚本和做一次性检查时很方便。
COMMAND 的 lager ssh 不分配终端。因此,只有当 Box 用户对该命令有免密码授权时,远程的 sudo 命令才能工作。否则请在交互式会话中运行它。
只要远程命令本身带有以短横线开头的标志,就请用
-- 把 lager 的选项与远程命令分开,以免它们被当作 lager 的选项解析。远程命令的退出码会作为
lager ssh 的退出码传出,因此它在脚本中可以正常组合使用。工作原理
该命令:- 把 Lager Box 名称解析为 IP 地址
- 查找 SSH 用户名(默认
lagerdata) - 选择要提供的 SSH 身份
- 打开交互式 SSH 会话,或运行该命令
~/.ssh/lager_box 存在,lager ssh 会用 -i 传入它。-i 标志会替换
SSH 的默认身份列表,而不是追加到其中。因此 lager ssh 还会在 lager_box
之后逐一指明您存在的默认密钥,这些密钥是 id_rsa、id_ecdsa、id_ecdsa_sk、
id_ed25519 和 id_ed25519_sk。来自 ~/.ssh/config 的身份和 agent 中的密钥仍然可用。如果没有 lager_box 密钥,lager ssh 完全不传 -i。
用户名解析
SSH 用户名按以下顺序解析:- 随 Box 配置保存的用户名(
lager boxes add --user) - 默认用户名:
lagerdata
lager ssh 按 Box 名称查找已保存的用户名。如果您给 --box 传的是 IP 地址,它会使用 lagerdata。请传入 Box 名称,以使用它保存的用户名。
若要为某台 Lager Box 使用不同的用户名:
SSH 密钥配置
若要实现免密码访问,请把 Lager 的 SSH 密钥安装到 Box 上。该命令会要求输入一次 Box 密码:ssh-copy-id 安装的密钥同样有效,因为 lager ssh 也会提供您的默认密钥。请参阅 SSH Setup。
示例
通过 SSH 完成的常见任务
以下每一项都可以用lager ssh --box <box> -- <command> 作为单行命令执行,也可以在 lager ssh --box <box> 之后交互式执行。
查看容器状态
查看 Lager Box 版本
查看磁盘空间
查看防火墙状态
在大多数 Box 上sudo 会要求输入密码,因此请先打开交互式会话:
说明
- 不带
COMMAND时,打开完全交互式的 shell 会话(用exit或 Ctrl+D 退出) - 带
COMMAND时,在 Box 上运行它,并以该命令的退出码退出 - 该会话作为子进程运行,因此 Lager 的清理钩子仍会触发
- 未指定
--box时使用默认 Lager Box

