是否可以将 GPG 密钥过期时间设置为短于一天(比如一个小时)?

Is it possible to set GPG key expiration time shorter than one day (say, an hour)?

在我的项目中,我们想要测试我们的产品在 GPG 密钥过期时的行为。所以我们希望密钥在非常短的时间内过期,以便经常重复测试。

其实在生成key时的提示信息中已经明确指出过期的最小单位是"day":

Please specify how long the key should be valid.
         0 = key does not expire
      <n>  = key expires in n days
      <n>w = key expires in n weeks
      <n>m = key expires in n months
      <n>y = key expires in n years

但我还是想问这个问题,以防万一有什么东西可以满足我的需要:是否可以将 GPG 密钥过期时间设置为短于一天(例如,一个小时,或者偶数分钟)?

如果没有这样的方法,我需要弄清楚如何在不必等待一整天的情况下重复我们的测试。

据我所知,它仅记录在 source code 中,但您可以在 Key is valid for? (0) 提示符下使用 yyyymmddThhmmss.[= 形式输入日期时间。 18=]

例如,要将到期时间设置为 2099 年 3 月 8 日 9:34 AM (UTC),您可以输入 20990308T093400。您输入的时区始终被解释为 UTC,尽管您会在当地时区看到确认信息,例如Key expires at Fri Mar 8 10:34:00 2099 +01.

从版本 2.1.20 开始,您还可以 append a Z to the datetime to explicitly denote UTC,例如20190308T093400 Z,但不支持输入其他时区。