主机管理

介绍

管理维护平台可操作的主机,首次添加主机时需要输入 ssh 指定用户的密码。

原理说明

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

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

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

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

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

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

错误说明

  • 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
    • 如果你可以手动操作实现密钥认证可自己尝试实现密钥认证,测试通过后再次添加主机即可
    • 以上都排查过还是不行的话,果断向我们来反馈吧