Ssh

ssh-keygen:簽名語法 - 選項需要幫助

  • November 18, 2020

我正在嘗試使用受限選項簽署一些 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 —- 清除所有啟用的權限。這對於清除預設權限集很有用,因此可以單獨添加權限。

引用自:https://serverfault.com/questions/1042892