48.5. 管理主机的公共 SSH 密钥
OpenSSH 使用公钥来验证主机。一台机器尝试访问另一台机器,并显示其密钥对。主机第一次验证时,目标机器上的管理员必须手动批准请求。然后,机器将主机的公钥存储在 known_hosts
文件中。每当远程机器尝试再次访问目标机器时,目标机器会检查其 known_hosts
文件,然后将访问权限自动授予批准的主机。
48.5.1. 使用 IdM Web UI 上传主机的 SSH 密钥 复制链接链接已复制到粘贴板!
身份管理允许您将公共 SSH 密钥上传到主机条目。OpenSSH 使用公钥来验证主机。
先决条件
- 管理 IdM Web UI 或用户管理员角色的管理员特权。
流程
您可以从
~/.ssh/known_hosts
文件检索主机的密钥。例如:server.example.com,1.2.3.4 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApvjBvSFSkTU0WQW4eOweeo0DZZ08F9Ud21xlLy6FOhzwpXFGIyxvXZ52+siHBHbbqGL5+14N7UvElruyslIHx9LYUR/pPKSMXCGyboLy5aTNl5OQ5EHwrhVnFDIKXkvp45945R7SKYCUtRumm0Iw6wq0XD4o+ILeVbV3wmcB1bXs36ZvC/M6riefn9PcJmh6vNCvIsbMY6S+FhkWUTTiOXJjUDYRLlwM273FfWhzHK+SSQXeBp/zIn1gFvJhSZMRi9HZpDoqxLbBB9QIdIw6U4MIjNmKsSI/ASpkFm2GuQ7ZK9KuMItY2AoCuIRmRAdF8iYNHBTXNfFurGogXwRDjQ==
server.example.com,1.2.3.4 ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApvjBvSFSkTU0WQW4eOweeo0DZZ08F9Ud21xlLy6FOhzwpXFGIyxvXZ52+siHBHbbqGL5+14N7UvElruyslIHx9LYUR/pPKSMXCGyboLy5aTNl5OQ5EHwrhVnFDIKXkvp45945R7SKYCUtRumm0Iw6wq0XD4o+ILeVbV3wmcB1bXs36ZvC/M6riefn9PcJmh6vNCvIsbMY6S+FhkWUTTiOXJjUDYRLlwM273FfWhzHK+SSQXeBp/zIn1gFvJhSZMRi9HZpDoqxLbBB9QIdIw6U4MIjNmKsSI/ASpkFm2GuQ7ZK9KuMItY2AoCuIRmRAdF8iYNHBTXNfFurGogXwRDjQ==
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 您还可以生成主机密钥。请参阅 生成 SSH 密钥。
从密钥文件复制公钥。完整的密钥条目的格式是
host name,IP type key==
。仅需要key==
,但您可以存储整个条目。要使用条目中的所有元素,请重新安排该条目,以便其具有顺序type key== [host name,IP]
。cat /home/user/.ssh/host_keys.pub ssh-rsa AAAAB3NzaC1yc2E...tJG1PK2Mq++wQ== server.example.com,1.2.3.4
# cat /home/user/.ssh/host_keys.pub ssh-rsa AAAAB3NzaC1yc2E...tJG1PK2Mq++wQ== server.example.com,1.2.3.4
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 登录到 IdM Web UI。
- 进入 Identity>Hosts 选项卡。
- 单击要编辑的主机名称。
- 在 Host Settings 部分中,单击 SSH 公钥 添加按钮。
- 将主机的公钥粘贴到 SSH 公钥 字段中。
- 单击 设置。
- 点 IdM Web UI 窗口顶部的 Save。
验证
- 在 Hosts Settings 部分下,验证密钥是否列在 SSH 公钥 下。
48.5.2. 使用 IdM CLI 上传主机的 SSH 密钥 复制链接链接已复制到粘贴板!
身份管理允许您将公共 SSH 密钥上传到主机条目。OpenSSH 使用公钥来验证主机。当使用 host-add
或稍后修改条目创建主机时,主机 SSH 密钥被添加到 IdM 中的主机条目中。
请注意,RSA 和 DSA 主机密钥由 ipa-client-install
命令创建,除非在安装脚本中明确禁用了 SSH 服务。
先决条件
- 管理 IdM 或用户管理员角色的管理员特权。
流程
使用
--sshpubkey
选项运行host-mod
命令,将 base64 编码的公钥上传到主机条目。因为添加主机密钥会更改主机的 DNS Secure Shell 指纹(SSHFP)记录,因此请使用
--updatedns
选项更新主机的 DNS 条目。例如:ipa host-mod --sshpubkey="ssh-rsa RjlzYQo==" --updatedns host1.example.com
$ ipa host-mod --sshpubkey="ssh-rsa RjlzYQo==" --updatedns host1.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 实际密钥通常以等号(=)结束,但会更长。
要上传多个密钥,请输入多个 --sshpubkey 命令行参数:
--sshpubkey="RjlzYQo==" --sshpubkey="ZEt0TAo=="
--sshpubkey="RjlzYQo==" --sshpubkey="ZEt0TAo=="
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,一个主机可以有多个公钥。
- 上传主机密钥后,将 SSSD 配置为使用身份管理作为其身份域之一,并设置 OpenSSH 以使用 SSSD 工具管理主机密钥,如 配置 SSSD 来为 OpenSSH 服务提供缓存。
验证
运行
ipa host-show
命令来验证 SSH 公钥是否与指定主机关联:ipa host-show client.ipa.test
$ ipa host-show client.ipa.test ... SSH public key fingerprint: SHA256:qGaqTZM60YPFTngFX0PtNPCKbIuudwf1D2LqmDeOcuA client@IPA.TEST (ssh-rsa) ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
48.5.3. 使用 IdM Web UI 删除主机的 SSH 密钥 复制链接链接已复制到粘贴板!
您可以在主机密钥过期或者不再有效后删除主机密钥。按照以下步骤,使用 IdM Web UI 删除单个主机密钥。
先决条件
- 管理 IdM Web UI 的管理员特权或主机管理员角色。
流程
- 登录到 IdM Web UI。
- 进入 Identity>Hosts 选项卡。
- 单击要编辑的主机名称。
- 在 Host Settings 部分下,单击您要删除的 SSH 公钥旁边的 Delete。
- 点页面顶部的 Save。
验证
- 在 Host Settings 部分下,验证密钥不再列在 SSH 公钥 下。
48.5.4. 使用 IdM CLI 删除主机的 SSH 密钥 复制链接链接已复制到粘贴板!
您可以在主机密钥过期或者不再有效后删除主机密钥。按照以下步骤,使用 IdM CLI 删除单个主机密钥。
先决条件
- 管理 IdM CLI 的管理员特权或主机管理员角色。
流程
要删除分配给主机帐户的所有 SSH 密钥,请在
ipa host-mod
命令中添加--sshpubkey
选项,而不指定任何密钥:kinit admin ipa host-mod --sshpubkey= --updatedns host1.example.com
$ kinit admin $ ipa host-mod --sshpubkey= --updatedns host1.example.com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 请注意,最好使用
--updatedns
选项来更新主机的 DNS 条目。如果上传的密钥中不包括类型,则 IdM 将自动从密钥确定密钥类型。
验证
运行
ipa host-show
命令来验证 SSH 公钥是否不再与指定主机关联:Copy to Clipboard Copied! Toggle word wrap Toggle overflow