PAM360 中的基于 SSH CLI 的 API

基于 SSH CLI 的 API 广泛应用于 IT 基础设施管理领域,在该领域中,对敏感系统的安全访问至关重要。它们能够实现管理任务的无缝自动化,减少人工干预的需求,并提高整体系统效率。 基于 SSH CLI(命令行界面)的 API 提供了一种强大且安全的方法,可通过安全外壳连接来自动化和管理远程系统。与传统的 RESTful 或基于 HTTP 的 API 不同,基于 SSH CLI 的 API 利用了安全外壳 (SSH) 协议,该协议可在客户端和服务器之间提供加密通信。此类 API 允许开发人员和系统管理员通过程序化访问 SSH 协议,在远程机器上执行命令并执行管理任务。

通过 SSH 为脚本配置 CLI 涉及以下几个操作步骤。阅读完本文后,您将了解以下内容:

  1. 在 PAM360 中创建 SSH CLI API 用户账户
  2. 配置 SSH 服务器
  3. 配置客户端以启用应用程序访问 PAM360
  4. 应用程序间密码管理命令
  5. 访问 PAM360 辅助服务器以 应用程序间 密码管理
  6. 故障排除提示

1. 在 PAM360 中创建 SSH CLI API 用户账户

配置和使用应用程序间密码管理(A2A)的密码管理 API 的第一步,是在 PAM360 中创建 SSH CLI API 用户账户。这些账户专供仅访问密码管理 API 的用户使用。

每个 API 用户账户必须与一个特定的端点(服务器或桌面)相关联,API 将通过该端点进行调用。这确保用户账户通过用户名与主机名的组合(例如 `user@hostname`)进行唯一标识。此配置使 PAM360 能够安全地认证和追踪 API 用户,从而确保对访问权限和活动进行精确控制。

有关 如何创建 SSH CLI API 用户账户的详细说明,请参阅 PAM360 帮助文档。

2. 配置 SSH 服务器

PAM360 内置了 SSH 服务器,这是实现基于 SSH CLI 的 API 交互所必需的。默认情况下,SSH 服务器运行在 6622 端口,但如有需要,您可以将其配置为使用其他端口。要使用密码管理 API,必须启动 SSH 服务器并进行正确配置。

请按照以下步骤配置 SSH 服务器端口并启动服务器:

  1. 导航至“管理” >> “配置” >> “密码管理 API”。
  2. 在打开的界面中,左侧窗格中选择SSH-CLI
  3. a-to-a-password-management4
  4. 根据需要编辑SSH 服务器端口,然后单击 “启动 SSHD 服务器”以激活 SSH 服务器。

SSH 服务器运行后,PAM360 即可处理基于命令行的安全 API 交互,以实现密码管理。

3. 客户端配置:启用应用程序访问 PAM360

在 PAM360 中创建必要的 API 用户账户并启动 SSH 服务器后,API 用户即可访问 PAM360 来管理分配给他们的密码。需要注意的是,PAM360 的所有权和共享机制同样适用于 API 用户,这意味着他们只能检索、修改或创建专门分配给他们的密码或账户。这些操作通过 PAM360 的密码管理 API 实现。

3.1 客户端与 PAM360 服务器之间的访问机制如何运作?

为确保安全认证,每位 API 用户应持有或关联一组 SSH 公私钥对。PAM360 服务器已知晓公钥,而私钥则保存在用户机器上。允许用于认证的公钥列于 `<PAM360_HOME>/<user_name>/.ssh/authorized_keys` 文件中。

当用户尝试登录时,SSH 客户端会指定要用于身份验证的密钥对。PAM360 服务器会验证指定的密钥是否被允许。 若获准,服务器将发送一个挑战(即使用用户公钥加密的随机数)。用户的 SSH 客户端使用其私钥解密该挑战,从而在不向服务器披露私钥的情况下证明对私钥的所有权。一旦成功解密挑战,用户即通过身份验证,并被授予在 PAM360 中执行密码管理操作的权限。

3.2 通过 API 访问 PAM360 进行密码操作的用户

如上所述,API 用户可访问 PAM360 以检索密码并执行其他与密码相关的操作,但仅限于用户创建过程中指定的主机。每个 API 用户都与特定主机(服务器或桌面)绑定,PAM360 出于安全考虑强制执行此限制。

对于密码检索或任何其他密码管理操作,运行在指定主机上的应用程序必须通过 SSH 服务器连接到 PAM360。SSH 服务器充当中介,促进应用程序与 PAM360 之间的安全连接以处理密码操作。

可通过任何标准的 OpenSSH 命令访问 SSH 服务器。但是,除了标准的 SSH 命令外,用户还必须包含如下所示的 PAM360 专用命令,才能执行所需的密码管理任务。此设置确保了通过基于 API 的交互来管理密码和执行敏感操作时,拥有一个安全、受控的环境。

ssh-q [-p 端口]用户名@主机名[-i 私钥] [PAM360 特定命令]

例如 ssh-q -p 6622test@test-server-i s/home/guest/id_rsa [PAM360 专用命令]

对于 MSP 版本,请使用以下命令:

ssh-q [-p 端口]ORGNAME/用户名@主机名[-i 私钥] [PAM360 特定命令]

例如ssh-q -p 6622 MANAGEENGINE/test@test-server -i /home/guest/id_rsa [PAM360 专用命令]


4. 应用程序间密码管理的专用命令

若要实现自动的应用程序间密码管理,您需要在调用 API 的应用程序中使用特定命令。请使用以下命令执行所需操作:

4.1 检索密码

ssh-q [-p 端口]用户@主机名[-i 私钥]RETRIEVE --resource=<PAM360中显示的资源名称>--account=<PAM360中显示的账户名称>--reason=<密码访问原因>--ticketid=<密码访问的票证ID>

例如ssh-q -p 6622 test@test-server -i /home/guest/id_rsa RETRIEVE--resource=test-server--account=root--reason=Testing password retrieval using ssh client API--ticketid=7


4.2 重置密码

a. 本地密码重置

ssh-q [-p 端口] 用户@主机名  [-i 私钥]RESET_LOCAL --resource=<PAM360中的资源名称>--account=<PAM360中的账户名称>--newpassword=<新密码>--reason=<重置密码的原因>--ticketid=<密码重置的票证ID>

示例ssh-q -p 6622 test@test-server -i /home/guest/id_rsaRESET_LOCAL--resource=test-server--account=root--newpassword=rootnew--reason=轮换密码--ticketid=7

b. 远程密码重置

ssh-q [-p 端口] 用户@主机名 [-i 私钥]RESET_REMOTE --resource=<PAM360中的资源名称>--account=<PAM360中的账户名称>--newpassword=<新密码>--reason=<重置密码的原因>--ticketid=<重置密码的工单ID>

例如ssh-q -p 6622 test@test-server -i /home/guest/id_rsaRESET_REMOTE--resource=test-server--account=root--newpassword=rootnew--reason=轮换密码--ticketid=7


4.3 创建新资源和账户

ssh-q [-p 端口] 用户@主机名 [-i 私钥]CREATE --resource=<待创建的资源名称>--account=<待创建的账户名称>--newpassword=<新增账户的密码>--resourcetype=<新增资源的类型>--notes=<备注>

例如ssh-q -p 6622 test@test-server -i /home/guest/id_rsa CREATE--resource=testresource--account=testaccount--newpassword=testpassword--resourcetype=Windows--notes=已添加一个新资源


5. 访问 PAM360 备用服务器以进行应用程序间密码管理

如果您已在 PAM360 中配置了高可用性 (HA) 设置,当主服务器发生故障时,应用程序可自动切换至辅助服务器以进行应用程序间密码管理。为确保此故障转移过程顺利进行,请按照以下配置步骤操作:

  1. 导航至 PAM360 主安装文件夹,并复制整个 sshd 目录
  2. 现在,将其粘贴到 PAM360 辅助安装文件夹中

    注意

    每次创建新的 API 用户时,您都应复制并粘贴sshd文件夹。这可确保 SSH 设置(包括授权密钥)在辅助服务器上得到同步。

如前所述,PAM360 包含一个内置的 SSH 服务器,必须在备用服务器上激活该服务器,以便在主服务器发生故障时支持应用程序间密码管理。请按照以下步骤在备用安装上启动 SSH 服务器:

  1. 停止 PAM360 主服务器。
  2. 登录 PAM360 辅助服务器的 Web 界面,导航至“管理”>>“配置”>>“密码管理 API”>>“SSH CLI”。
  3. 如需修改,请调整 SSH-CLI 服务器端口(默认情况下,SSH 服务器运行在 6622 端口)。
  4. 点击“启动 SSHD 服务器”以在辅助服务器上激活 SSH 服务器。

通过执行这些简单的步骤,当主服务器不可用时,备用 PAM360 服务器将准备好接管应用程序间密码管理,从而确保系统无缝运行,不会中断服务。

5.1 PAM360 备用服务器中应用程序间密码管理的命令

完成上述配置后,高可用性模式下的密码访问将实现无缝衔接。但需注意,由于主服务器宕机时不允许写入操作,应用程序仅能检索密码,无法执行密码重置及资源/账户创建操作。

要检索密码,请使用以下命令:

ssh-q [-p 端口]用户@PAM360_辅助主机名 [-i 私钥]RETRIEVE --resource=<PAM360中存在的资源名称> --account=<PAM360中存在的账户名称> --reason=<密码访问原因> 

示例ssh-q -p 6622 test@test-secondary-server -i /home/guest/id_rsa RETRIEVE--resource=test-server--account=root--reason=使用 SSH 客户端 API测试密码检索


6. 故障排除提示


1. 执行上述命令后,未收到来自 PAM360 的任何响应?

请移除上述命令中的 -q 选项。屏幕上将显示警告/错误信息。例如,要检索密码,请执行以下命令:

ssh[-p 端口]用户名@主机名[-i 私钥]RETRIEVE --resource=<PAM360中的资源名称> --account=<PAM360中的账户名称> --reason=&<获取密码的理由>

现在,请将屏幕上显示的消息发送给 PAM360 支持团队。

2. 当我尝试从高可用性模式下的 PAM360 辅助服务器检索密码时,未获得所需密码?

每次添加新的 API 用户后,必须将<PAM360-主安装目录>下的整个 sshd 文件夹复制并粘贴到<PAM360-辅助安装目录> 下。完成此操作后,您将能够从 PAM360 辅助服务器访问密码。






Top