Kus*_*nda 6 ssh rhel openbsd certificates
我正在阅读有关为 RHEL 6 编写的SSH 证书的相当不错的文本并且openssh-5.3p1-94.el6(这使它大约有 10 年的历史),同时试图模仿我的 OpenBSD 当前系统上的示例。
示例之一显示了创建主机 CA 密钥,然后签署主机的 RSA 密钥:
ssh-keygen -s ~/.ssh/ca_host_key -I host_name -h -Z host_name.example.com -V -1w:+54w5d /etc/ssh/ssh_host_rsa.pub
Enter passphrase:
Signed host key /root/.ssh/ssh_host_rsa-cert.pub: id "host_name" serial 0 for host_name.example.com valid from 2015-05-15T13:52:29 to 2016-06-08T13:52:29
Run Code Online (Sandbox Code Playgroud)
当我在 OpenBSD 上尝试这个时,我没有得到for host_name.example.com输出。文字是这样说的
该
-Z选项将此证书限制为域内的特定主机。
...我对此有点困惑,因为OpenBSD 手册ssh-keygen(1)根本没有提到一个-Z选项。我也很困惑ssh-keygen接受这个没有记录的选项而不抱怨。
查看的源代码ssh-keygen,该-Z选项被接受,但似乎与“格式密码”(或可能是“密码格式”)而不是主机名有关(前提是我正在查看正确的代码):
case 'Z':
openssh_format_cipher = optarg;
break;
Run Code Online (Sandbox Code Playgroud)
查看旧版本的代码,它总是与“格式密码”有关。
OpenSSH 的发行说明没有提到-Z.
问题:是否ssh-keygen在 RHEL 6 上(我不确定该版本是否相关,但关于 RHEL 7 或 RHEL 8 的 SSH 证书的等效文档似乎不可用)是否用 RedHat-only 补丁进行了修补,从而使-Z行为有所不同?
tl;博士; 对于较新版本的 OpenSSH,您应该使用该-n选项而不是-Z设置主体(例如主机名或用户)。
查看 的源代码
ssh-keygen,该-Z选项被接受,但似乎与“格式密码”有关
是的,您没有收到错误的原因是因为openssh_format_cipher在创建证书时不使用该变量,而仅在使用密码生成密钥时才使用该变量。
如果您生成密钥ssh-keygen -f ./path -Z some_garbage并设置密码,您将收到错误消息。
是否
ssh-keygen在 RHEL 6 上...使用 RedHat-only 补丁进行修补,从而使-Z行为有所不同?
是的,它曾经是。你可以openssh-5.3p1-ssh-certificates.patch从这里看到:
+ case 'Z':
+ cert_principals = optarg;
+ break;
case 'p':
Run Code Online (Sandbox Code Playgroud)
该补丁不再用于较新的 rpm 中。
| 归档时间: |
|
| 查看次数: |
168 次 |
| 最近记录: |