跳到主要内容
版本:4.x

主机管理

介绍

管理维护平台可操作的主机,Spug 通过 SSH 密钥登录主机执行操作,无需在主机上安装任何 Agent。主机以分组的形式组织,是批量执行、文件分发、应用发布、流水线、任务计划、监控等模块的基础。

主机管理

分组管理

左侧为分组列表,分组支持多级嵌套,右键点击分组可以 新建根分组 / 新建子分组 / 重命名 / 添加主机 / 移动主机 / 删除主机 / 删除此分组;管理员还可以把右上角的开关从 浏览 切换到 排版,通过拖拽分组进行排序。一台主机可以同时属于多个分组,主机权限也是按分组授权的(见 角色管理)。

搜索框支持按主机名称或内外网 IP 检索,检索时分组树会自动过滤掉没有匹配主机的分组,列表展示的是当前选中分组内命中的主机。

新建主机

点击 新建 按钮展开菜单,可以选择四种方式添加主机。

新建主机菜单

手动新建

新建主机

  • 主机分组:主机所属的分组,可多选。
  • 主机名称:便于识别的名称,全局唯一。
  • 连接地址:SSH 登录用户、主机 IP / 域名以及端口。
  • 独立密钥:默认使用全局密钥(系统管理 / 系统设置 / 密钥设置),如果上传了独立密钥(私钥)则优先使用该密钥,适用于无法统一密钥的主机。
  • 备注信息:可选。

点击 验证 后,如果密钥认证未通过会弹出密码输入框,输入该用户的密码完成首次验证,密码仅用于本次验证不会被存储,验证原理见下文。

批量导入(Excel)

选择 批量导入 后先下载模板,按模板填写主机名称、SSH 地址、SSH 端口、SSH 用户、SSH 密码(可选,仅用于首次验证)和备注信息后上传,导入完成后会显示每条记录的结果,并自动进入 验证及同步 环节,使用模板中填写的 SSH 密码完成密钥验证与扩展信息同步。

从云厂商导入

选择 阿里云腾讯云 后,输入云账户的 AccessKey IDAccessKey Secret(仅需要 ECS / CVM 的只读权限,凭据只用于本次查询不会存储),选择区域和目标分组,并填写统一的 SSH 用户名和端口,Spug 会自动拉取该区域下的实例列表并导入,导入后同样需要通过 验证 完成密钥认证。

云厂商导入

批量验证与同步

点击列表上方的 验证 按钮可以对 全部主机仅未验证主机 批量执行验证,可以填写默认密码用于未验证主机的首次认证。验证通过后会同步主机的扩展信息(CPU、内存、磁盘、操作系统、内外网 IP 等),并覆盖已有的扩展信息。

批量验证

主机详情

点击主机名称可以查看主机详情,包括连接信息以及同步得到的扩展信息,云厂商导入的主机还会包含实例 ID、计费方式、创建 / 到期时间等,到期时间会在列表中以 到期信息 列提示。可以在详情中手动 同步 最新的扩展信息。

导出

点击 导出 可以把当前有权限查看的主机导出为 Excel 文件,前 6 列(主机名称、SSH 地址、SSH 端口、SSH 用户、SSH 密码、备注信息)与批量导入模板一致,并附带实例 ID、操作系统、CPU、内存、磁盘、内外网 IP、计费方式、创建 / 到期时间等扩展信息,可用于备份或迁移。

验证原理

Spug 会在首次添加主机时尝试直接通过密钥连接目标主机,会出现以下 3 种可能:

  1. 如果目标主机不支持密钥认证,则直接抛出异常(错误代码 E01)并终止请求。
  2. 如果密钥认证通过则直接完成主机添加,结束流程。
  3. 如果密钥认证失败,则弹出密码输入框,让用户输入密码然后设置密钥认证(如果目标主机不支持密码认证,则直接抛出异常(错误代码 E00)并终止请求)。

当第 3 种情况时用户输入密码,Spug 在接收到输入的密码后,会尝试通过密码连接目标主机并执行以下命令设置密钥认证

mkdir -p -m 700 ~/.ssh
echo 'public key content ....' >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

完成以上操作后,会再次尝试使用密钥连接目标主机,会出现以下 2 种可能:

  1. 认证失败,则直接抛出异常(错误代码 E02)并终止请求。
  2. 认证通过,完成主机添加。
提示

Spug 支持 RSA、Ed25519、ECDSA、DSA 格式的密钥(未上传时自动生成 2048 位 RSA 密钥),被管主机的默认 Shell 可以是 bash、zsh、sh(dash / ash)等,Windows 主机(OpenSSH Server)也可以添加并执行命令。

错误说明

  • E00 表示目标主机不支持密码认证,通常可以尝试查看目标主机的 sshd 配置文件 /etc/ssh/sshd_config 确保 PasswordAuthentication yes
  • E01 表示目标主机不支持密钥认证,通常可以尝试查看目标主机的 sshd 配置文件 /etc/ssh/sshd_config 确保 PubkeyAuthentication yes
  • E02Spug 尝试设置密钥认证后依然无法正常通过密钥连接主机,可尝试做以下检查。
    • 用户家目录如 /root 目录的权限为 700
    • ~/.ssh 目录权限为 700,目录内文件权限 600
    • 上述文件的属主与属组是当前用户
    • 查看 SSH 系统日志,例如 CentOS 位于 /var/log/secure,Ubuntu 位于 /var/log/auth.log
    • 如果你可以手动操作实现密钥认证可自己尝试实现密钥认证,测试通过后再次添加主机即可
    • 以上都排查过还是不行的话,果断向我们来反馈吧