Die Vertrauensstellung kann nicht mit gpg und einer Befehlsdatei bearbeitet werden

317
Steiny

Ich versuche, ein Plugin für mein Build-Tool zu schreiben, das GnuPG enthält.

Ich habe es bisher geschafft, alles zu tun, aber das Einzige, was mir wichtig ist, ist, wie man einem neu hinzugefügten Schlüssel vertraut, ohne das Vertrauen der vorhandenen Schlüssel zu beeinträchtigen.

Wenn ich die Schlüssel zuerst aufliste:

root@7353afd2c546:/# gpg --with-keygrip --with-secret --batch --with-colons --status-fd 1 --list-keys tru::1:1542186184:0:3:1:5 pub:-:4096:1:B6A8B64B909CAF2F:1541574504:::-:::scESC:::#:::23::0: fpr:::::::::DE29CBE0AC9B2EB810E694D7B6A8B64B909CAF2F: grp:::::::::9BEB53AD0C68FC629997DB0597DDD758C632B9CD: uid:-::::1541574504::5D90CFACEB3B07D9914327FD2981787B56ACD4A2::Testy <test@example.com>::::::::::0: sub:-:4096:1:0E839DDD93691327:1541574504::::::e:::+:::23: fpr:::::::::B9A633DBD1A309DB71ED55940E839DDD93691327: grp:::::::::6D475E5BA6A1502B1C083F780A537DBC15643EEA: 

Wir sehen, dass es keinen Wert für die Gültigkeit gibt.

Jetzt habe ich eine Befehlsdatei:

root@7353afd2c546:/# cat /root/.gnupg/commands trust 5 save 

Und wenn ich renne:

root@7353afd2c546:/# gpg --batch --yes --status-fd 1 --command-file /root/.gnupg/commands --edit-key DE29CBE0AC9B2EB810E694D7B6A8B64B909CAF2F [GNUPG:] KEY_CONSIDERED DE29CBE0AC9B2EB810E694D7B6A8B64B909CAF2F 0 Secret subkeys are available.   pub:-:4096:1:B6A8B64B909CAF2F:1541574504:0::-:::sc fpr:::::::::DE29CBE0AC9B2EB810E694D7B6A8B64B909CAF2F: ssb:-:4096:1:0E839DDD93691327:1541574504:0:::::e fpr:::::::::B9A633DBD1A309DB71ED55940E839DDD93691327: uid:-::::::::Testy <test@example.com>:::S9 S8 S7 S2 H10 H9 H8 H11 H2 Z2 Z3 Z1,mdc,no-ks-modify:1,p:: [GNUPG:] GET_LINE keyedit.prompt [GNUPG:] GOT_IT  Please decide how far you trust this user to correctly verify other users' keys (by looking at passports, checking fingerprints from different sources, etc.)  1 = I don't know or won't say 2 = I do NOT trust 3 = I trust marginally 4 = I trust fully 5 = I trust ultimately m = back to the main menu  pub:-:4096:1:B6A8B64B909CAF2F:1541574504:0::-:::sc fpr:::::::::DE29CBE0AC9B2EB810E694D7B6A8B64B909CAF2F: ssb:-:4096:1:0E839DDD93691327:1541574504:0:::::e fpr:::::::::B9A633DBD1A309DB71ED55940E839DDD93691327: uid:-::::::::Testy <test@example.com>:::S9 S8 S7 S2 H10 H9 H8 H11 H2 Z2 Z3 Z1,mdc,no-ks-modify:1,p:: [GNUPG:] GET_LINE edit_ownertrust.value [GNUPG:] GOT_IT [GNUPG:] GET_LINE edit_ownertrust.value [GNUPG:] GOT_IT  [GNUPG:] GET_LINE keyedit.prompt [GNUPG:] GOT_IT 

Wir sehen hier, dass es so aussieht, als ob die Eingabe erfolgreich aus der Datei gelesen wurde. Wenn ich jedoch die Schlüssel erneut aufliste, hat sich die Gültigkeit nicht geändert.

Wenn ich den Schlüssel jedoch manuell bearbeite:

root@7353afd2c546:/# gpg --edit-key DE29CBE0AC9B2EB810E694D7B6A8B64B909CAF2F gpg (GnuPG) 2.2.4; Copyright (C) 2017 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.  Secret subkeys are available.  pub rsa4096/B6A8B64B909CAF2F created: 2018-11-07 expires: never usage: SC trust: never validity: unknown ssb rsa4096/0E839DDD93691327 created: 2018-11-07 expires: never usage: E [ unknown] (1). Testy <test@example.com>  gpg> trust pub rsa4096/B6A8B64B909CAF2F created: 2018-11-07 expires: never usage: SC trust: never validity: unknown ssb rsa4096/0E839DDD93691327 created: 2018-11-07 expires: never usage: E [ unknown] (1). Testy <test@example.com>  Please decide how far you trust this user to correctly verify other users' keys (by looking at passports, checking fingerprints from different sources, etc.)  1 = I don't know or won't say 2 = I do NOT trust 3 = I trust marginally 4 = I trust fully 5 = I trust ultimately m = back to the main menu  Your decision? 5 Do you really want to set this key to ultimate trust? (y/N) y  pub rsa4096/B6A8B64B909CAF2F created: 2018-11-07 expires: never usage: SC trust: ultimate validity: unknown ssb rsa4096/0E839DDD93691327 created: 2018-11-07 expires: never usage: E [ unknown] (1). Testy <test@example.com> Please note that the shown key validity is not necessarily correct unless you restart the program.  gpg> save Key not changed so no update needed. 

Dann klappt es:

root@7353afd2c546:/# gpg --with-keygrip --with-secret --batch --with-colons --status-fd 1 --list-keys gpg: checking the trustdb tru:o:1:1542190815:1:3:1:5 [GNUPG:] KEY_CONSIDERED DE29CBE0AC9B2EB810E694D7B6A8B64B909CAF2F 0 gpg: marginals needed: 3 completes needed: 1 trust model: pgp gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u pub:u:4096:1:B6A8B64B909CAF2F:1541574504:::u:::scESC:::#:::23::0: fpr:::::::::DE29CBE0AC9B2EB810E694D7B6A8B64B909CAF2F: grp:::::::::9BEB53AD0C68FC629997DB0597DDD758C632B9CD: uid:u::::1541574504::5D90CFACEB3B07D9914327FD2981787B56ACD4A2::Testy <test@example.com>::::::::::0: sub:u:4096:1:0E839DDD93691327:1541574504::::::e:::+:::23: fpr:::::::::B9A633DBD1A309DB71ED55940E839DDD93691327: grp:::::::::6D475E5BA6A1502B1C083F780A537DBC15643EEA: 

Warum funktioniert das nicht?

0

1 Antwort auf die Frage

0
grawity

Ihre Befehlsdatei hat trust 5eine einzige Zeile, obwohl der trustBefehl keine Parameter akzeptiert. Stattdessen wird eine separate Eingabeaufforderung für die Menüauswahl angezeigt, was bedeutet, dass die Antwort auch in einer separaten Zeile stehen sollte. Jede Aufforderung benötigt eine eigene Zeile in der Befehlsdatei.

Die Vertrauensstellung wird also nicht aktualisiert, da GnuPG das Wort erhält, savewenn es eine Nummer benötigt.

Ein schnellerer Weg, das eigene Vertrauen festzulegen, ist:

echo "DE29CBE0AC9B2EB810E694D7B6A8B64B909CAF2F:6:" | gpg --import-ownertrust 

(Das 6ist kein Tippfehler - es ist der interne Vertrauenswert, nicht die Menüelementnummer.)

Wenn sie auf separaten Zeilen stehen, spielt es keine Rolle. Ich habe sie zuerst in separaten Zeilen ausprobiert. Überschreibt `--import-ownertrust 'nicht die vorhandene Vertrauensdatenbank? Ich möchte nur das Vertrauen für einen einzelnen Schlüssel ändern und nicht das Vertrauen für die anderen berühren. Steiny vor 5 Jahren 0
Ich habe das Beispiel mit den Parametern in separaten Zeilen aktualisiert. Steiny vor 5 Jahren 0