Ssh
ssh-keygen:簽名語法 - 選項需要幫助
我正在嘗試使用受限選項簽署一些 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: ssh-ed25519-cert-v01@openssh.com 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
。從手冊頁:clear —- 清除所有啟用的權限。這對於清除預設權限集很有用,因此可以單獨添加權限。