22.5. 管理用户的公共 SSH 密钥


通过身份管理,您可以将 SSH 公共密钥上传到用户条目。有权访问对应私有 SSH 密钥的用户可以使用 ssh 登录 IdM 机器,而无需使用 Kerberos 凭据。如果正确配置了 pam_krb5,或者 SSSD 用作 IdM 服务器的身份提供程序,用户在登录后收到 Kerberos ticket-granting ticket (TGT);更多详情,请参阅 “自动获取 Kerberos Tickets”一节
请注意,如果用户从不可用其 SSH 私钥文件的计算机登录,则用户仍可提供其 Kerberos 凭据进行身份验证。

自动缓存和检索 SSH 密钥

在 IdM 服务器或客户端安装过程中,SSSD 会在机器上自动配置,以缓存和检索用户和主机 SSH 密钥。这允许 IdM 作为 SSH 密钥的通用集中式存储库。
如果在安装过程中没有配置服务器或客户端,您可以在机器上手动配置 SSSD。有关如何执行此操作的详情请参考 第 22.6 节 “配置 SSSD 为 OpenSSH 服务提供缓存”。请注意,SSSD 缓存 SSH 密钥需要本地机器上的管理权限。

SSH 密钥格式要求

IdM 接受以下两种 SSH 密钥格式:
openssh 样式键
有关此格式的详情,请参阅 RFC 4716
原始 RFC 4253-style 键
有关此格式的详情,请参阅 RFC 4253
请注意,IdM 会自动将 RFC 4253 样式的密钥转换为 OpenSSH 样式的密钥,然后再将其保存到 IdM LDAP 服务器中。
密钥文件(如 id_rsa.pub )包含三个部分:密钥类型、密钥本身以及附加注释或标识符。在以下示例中,密钥类型是 RSA,注释将密钥与 client.example.com 主机名相关联:
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMM4xPu54Kf2dx7C4Ta2F7vnIzuL1i6P21TTKniSkjFuA+r
qW06588e7v14Im4VejwnNk352gp49A62qSVOzp8IKA9xdtyRmHYCTUvmkcyspZvFRI713zfRKQVFyJOqHmW/m
dCmak7QBxYou2ELSPhH3pe8MYTQIulKDSu5Zbsrqedg1VGkSJxf7mDnCSPNWWzAY9AFB9Lmd2m2xZmNgVAQEQ
nZXNMaIlroLD/51rmMSkJGHGb1O68kEq9Z client.example.com
Copy to Clipboard Toggle word wrap
将密钥上传到 IdM 时,您可以上传所有三个关键部分,或者只上传密钥本身。如果您只上传密钥本身,IdM 会自动从上传的密钥中识别密钥类型,如 RSA 或 DSA。

22.5.1. 生成 SSH 密钥

您可以使用 OpenSSH ssh-keygen 工具生成 SSH 密钥。实用程序显示有关公钥位置的信息。例如:
$ ssh-keygen -t rsa -C user@example.com
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Created directory '/home/user/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:GAUIDVVEgly7rs1lTWP6oguHz8BKvyZkpqCqVSsmi7c user@example.com
The key's randomart image is:
+--[ RSA 2048]----+
|                 |
|     + .         |
|    + =   .      |
|     =   +       |
|    . E S..      |
|   .    . .o     |
|    . .  . oo.   |
|   . o .  +.+o   |
|    o  .o..o+o   |
+-----------------+
Copy to Clipboard Toggle word wrap
要上传用户的 SSH 密钥,请使用存储在显示文件中的公钥字符串。

22.5.2. 上传用户 SSH 密钥

22.5.2.1. Web UI:上传用户 SSH 密钥

  1. 选择 Identity Users
  2. 单击要编辑的用户的名称。
  3. Account Settings 区域的 Settings 选项卡下,点 SSH 公钥:添加

    图 22.9. 帐户设置中的 SSH 公钥

  4. 粘贴为 Base 64 编码的公钥字符串,然后单击 Set

    图 22.10. 在公钥中粘贴

  5. 点页面顶部的 Save

22.5.2.2. 命令行:上传用户 SSH 密钥

使用 ipa user-mod 命令,并使用 --sshpubkey 选项传递 Base 64 编码的公钥字符串。
例如,上传密钥类型、密钥本身和主机名标识符:
$ ipa user-mod user --sshpubkey="ssh-rsa AAAAB3Nza...SNc5dv== client.example.com"
Copy to Clipboard Toggle word wrap
要上传多个密钥,请多次使用 --sshpubkey。例如,上传两个 SSH 密钥:
--sshpubkey="AAAAB3Nza...SNc5dv==" --sshpubkey="RjlzYQo...ZEt0TAo="
Copy to Clipboard Toggle word wrap
注意
您可以使用命令重定向并指向包含 键的文件,而不是手动将密钥粘贴到命令行中。例如:
$ ipa user-mod user --sshpubkey="$(cat ~/.ssh/id_rsa.pub)" --sshpubkey="$(cat ~/.ssh/id_rsa2.pub)"
Copy to Clipboard Toggle word wrap

22.5.3. 删除用户密钥

删除 SSH 密钥:

22.5.3.1. Web UI:删除用户 SSH 密钥

  1. 选择 Identity Users
  2. 单击要编辑的用户的名称。
  3. Account Settings 区域的 Settings 选项卡下,单击您要删除的密钥旁边的 Delete

    图 22.11. 删除用户 SSH 公钥

  4. 点页面顶部的 Save

22.5.3.2. 命令行:删除用户 SSH 密钥

要删除分配给用户帐户的所有 SSH 密钥,请在 ipa user-mod 命令中添加 --sshpubkey 选项,而不指定任何密钥:
$ ipa user-mod user --sshpubkey=
Copy to Clipboard Toggle word wrap
如果您只想删除特定的 SSH 密钥或密钥,请使用 --sshpubkey 选项指定您要保留的密钥或密钥。
注意
此命令不会立即从缓存中删除 SSH 密钥。使用默认缓存超时值(entry_cache_timeout = 5400)时,密钥会在缓存中保留 1 小时和半小时。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat