Skip to content

SSH 与提权

bash
xops ssh web-01
xops ssh -i ~/.ssh/id_ed25519 deploy@192.0.2.10
xops ssh -J bastion.example.com deploy@192.0.2.10

单标签跳板名称需要预先配置为节点或别名。显式用户连接同一主机时,凭据保持独立。

自动保存节点

SSH、SFTP、SCP 和 exec 首次连接时先在内存中准备连接信息,SSH 握手及身份认证成功后才保存节点、主机和认证模板。超时、拒绝连接、认证失败或认证前取消均不会新增这些配置;其他节点的保存也不会顺带写入尚未认证的节点。

保存发生在打开 Shell、执行命令或启动文件传输之前,因此这些后续操作失败不会删除已经认证成功的节点。已有节点连接失败仍会保留;显式添加和导入节点也默认先验证,可通过 --skip-verify 跳过;添加时验证失败会询问是否保存,导入可用 --save-on-verify-failure 保留验证失败的节点。--remember never 只禁止自动保存密码等机密,认证成功的节点信息仍会保存。

例如,首次执行 xops ssh root@192.0.2.10 使用默认端口 22 且失败,不会留下 :22 节点。随后执行 xops ssh root@192.0.2.10:2222 并认证成功后,只保存 :2222 节点;下次省略端口即可匹配它。如果确实保存了同一主机的多个端口,仍需指定端口或使用唯一别名。旧版本留下的错误节点需要手动删除。

节点保存失败会报告错误并关闭本次尚未交付的 SSH 连接;若配置已经写入但同步到磁盘失败,不会自动回滚。连接期间发生冲突的配置修改也不会被覆盖。

提权

bash
xops ssh --sudo web-01
xops exec -x --sudo web-01 id

提权方式由节点配置决定,包括 root、免密 sudo、密码 sudo、su 等模式。只能普通用户登录的服务器可以使用 su 模式,在普通用户的 SSH 连接中通过 root 密码切换身份,不要求开放 root SSH 登录。

ssh --sudo 提供提权后的交互 shell;exec -x --sudo 直接执行提权命令。后者保留 PTY 认证,但不额外显示 root shell 提示符和注入命令回显。自定义 su/PAM 多轮认证和登录脚本应在目标环境验证。

隧道

bash
xops ssh -L 8080:127.0.0.1:80 -N web-01
xops ssh -D 1080 -N web-01

会话退出后隧道关闭。连接、密钥指纹和凭据问题见故障排查

MIT License