【问题标题】:how to print only primary uid of a gpg key in bash?如何在bash中仅打印gpg键的主uid?
【发布时间】:2021-03-26 12:31:16
【问题描述】:

我有指纹。我知道我可以通过gpg -k <finger print> 打印出所有 pubkey 信息。但我只想获取具有多个 uid 的键的主 uid。这样做的规范方法是什么?我知道我可以尝试 grep 第一个 uid 出现。但我不知道那东西有多稳定。

【问题讨论】:

    标签: shell gnupg


    【解决方案1】:

    我相信您正在寻找--with-colons 选项,它为脚本解析提供稳定的输出。给定这样的键:

    pub   rsa2048/0x362D63A80853D4CF 2013-06-21 [SC]
          3E70A502BB5255B6BB8E86BE362D63A80853D4CF
    uid                   [ultimate] Lars LastName <lars@...>
    uid                   [ultimate] keybase.io/larsks <larsks@...>
    sub   rsa2048/0x042DF6CF74E4B84C 2013-06-21 [S] [expires: 2023-07-01]
    sub   rsa2048/0x426D9382DFD6A7A9 2013-06-21 [E]
    sub   rsa2048/0xEE1A8B9F9369CC85 2013-06-21 [A]
    

    --with-colons 输出如下所示:

    tru::1:1615472480:1656257313:3:1:5
    pub:u:2048:1:362D63A80853D4CF:1371778249:::u:::scESCA::::::23::0:
    fpr:::::::::3E70A502BB5255B6BB8E86BE362D63A80853D4CF:
    uid:u::::1416450403::C2B1F8BE099BCF889677DBC639C4427C04BC230A::Lars LastName <lars@...>::::::::::0:
    uid:u::::1407979245::E8B853E07D5D3F9BAD96435FA508017A644467AE::keybase.io/larsks <larsks@...>::::::::::0:
    sub:u:2048:1:042DF6CF74E4B84C:1371778249:1688234376:::::s::::::23:
    fpr:::::::::FDE8364F7FEA3848EF7AD3A6042DF6CF74E4B84C:
    sub:u:2048:1:426D9382DFD6A7A9:1371778250::::::e::::::23:
    fpr:::::::::01A14A356BFE207E7CF6EAFE426D9382DFD6A7A9:
    sub:u:2048:1:EE1A8B9F9369CC85:1371778250::::::a::::::23:
    fpr:::::::::D73B9191F0AF110B229FF242EE1A8B9F9369CC85:
    

    这个输出是稳定的,所以你可以找第一个uid 元素:

    gpg --with-colons -k <fingerprint> |
      awk -F: '$1=="uid" {print $10; exit}'
    

    根据上述数据会产生:

    Lars LastName <lars@...>
    

    --with-colons 输出格式记录在 here

    【讨论】:

    • -k 在 gpg 未来版本的输出中不稳定,也不能保证,请参阅与 -k 相关的 gpg 手册页。我担心 --with-colons with -k 在这种情况下是不可信的。
    • 但是,由于--with-colons 输出被广泛使用,我猜它可以信任 -k,因为我猜 manpage 中的警告主要与 -k 输出有关。
    猜你喜欢
    • 2014-07-07
    • 2021-08-17
    • 2022-11-10
    • 2018-04-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多