我正在尝试使用受限选项签署一些 SSH 密钥。
我最初的尝试如下:
ssh-keygen -s /path/to/ca-ssh.pem -D opensc-pkcs11.so -n barfoo -O no-agent-forwarding -O no-port-forwarding -O no-x11-forwarding -O no-user-rc -O no-pty -I foo -z 12345 /path/to/pub
然而,这会产生一个没有选项的结果:
$ ssh-keygen -L -f
Type: [email protected] user certificate
Public key: ED25519-CERT SHA256:secretsquirrel
Signing CA: RSA SHA256: secretsquirrel
Key ID: "foo"
Serial: 12345
Valid: forever
Principals:
barfoo
Critical Options: (none)
Extensions: (none)
首先,我想我会-O clear
在其他选项之前添加。但这产生了同样的结果(none)
。
所以我想我会尝试-O critical:no-agent-forwarding
样式语法,但这会产生:
Critical Options:
no-agent-forwarding UNKNOWN OPTION (len 0)
最后我尝试-O critical:no-agent-forwarding=true
了,但这与UNKNOWN OPTION
上面的结果相同。
没关系,但我使用的版本是:
- Debian 10(破坏者)
- OpenSSH_7.9p1 Debian-10+deb10u2,OpenSSL 1.1.1d 2019 年 9 月 10 日
您实际上已经实现了您想要做的:禁用所有权限,这意味着您的“扩展”列表为空。看看如果您根本不使用会发生什么
-O
,即ssh-keygen -s /path/to/ca-ssh.pem -D opensc-pkcs11.so -n barfoo -I foo -z 12345 /path/to/pub
- 启用了哪些扩展?- 您使用的所有选项都是“no-xxxx”,这意味着您正在禁用扩展,从而清空扩展列表。- 而不是一一禁用/删除它们,您只能使用它们
-O clear
。从手册页: