Repareer: “Warning: apt-key is deprecated. Manage keyring files in trusted.gpg.d instead”
lees technische informatie in detail hier. en hier.
Omdat Apt-Key na Ubuntu 22.04 niet langer zal worden gebruikt, krijg je een waarschuwing als je het in Ubuntu 20.04 gebruikt.
De oplossing voor deze waarschuwing is het gebruik van gpg, een OpenPGP-coderings- en ondertekeningstool om de sleutels naar de map /etc/apt/trusted.gpg.d/ te schrijven.
Installeer handige tools voor het beheer van sleutels en repositories op een op Debian gebaseerd Linux-systeem.
sudo apt-update
sudo apt install gnupg2 wget ca-certificates lsb-release software-properties-common
In dit scenario gebruiken we winehq.key:
Als de toetsen in tekstformaat zijn, gebruikt u deze opdracht: (aanpassen aan de juiste locaties)
curl -sL https://dl.yarnpkg.com/debian/pubkey.gpg | gpg --dearmor | sudo tee /usr/share/keyrings/yarnkey.gpg >/dev/null
sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/debian/ bullseye main'
voor NON ascii-pantser OpenPGP-sleutels gebruik je dit:
wget -O- https://example.com/key/repo-key.gpg | sudo tee /usr/share/keyrings/reponame-archive-keyring.gpg
sudo add-apt-repository 'deb https://dl.winehq.org/wine-builds/debian/ bullseye main'
LinuxUprising zegt dit:
- Download de APT-repositorysleutel
Volgens de Debian-wiki moet de sleutel via HTTPS worden gedownload naar een locatie die alleen door root kan worden geschreven, bijvoorbeeld /usr/share/keyrings. De sleutelnaam moet een korte naam bevatten die de repository beschrijft, gevolgd door een archiefsleutelring. Bijvoorbeeld als de repository mijnrepository heet, moet het sleutelbestand de naam myrepository-archive-keyring.gpg hebben.
Het OpenPGP-sleutelbestand kan ascii-armoured zijn of niet. Om te verifiëren of een sleutelbestand ascii-gepantserd is, downloadt u het sleutelbestand en voert u deze opdracht uit (merk op dat de sleutelextensie .gpg, .asc, .key en waarschijnlijk andere kan zijn):
file <repo-key>.gpg
Als de uitvoer van dit commando vergelijkbaar is met het volgende, dan is de sleutel ascii-armoured:
repo-key.gpg: PGP publieke sleutelblok Public-Key (oud)
Dat gezegd hebbende, is dit de manier waarop u op de juiste en veilige manier een ondertekeningssleutel voor de repository kunt downloaden en toevoegen aan uw systeem:
Voor ascii-gepantserde OpenPGP-sleutels
Om te downloaden met wget en een dergelijke OpenPGP-sleutel aan uw systeem toe te voegen, gebruikt u:
wget -O- <https://example.com/key/repo-key.gpg> | gpg --dearmor | sudo tee /usr/share/keyrings/<myrepository>-archive-keyring.gpg
Wat alles in dit commando doet/betekent:
wget downloadt de sleutel van https://example.com/key/repo-key.gpg en voert de sleutel uit naar stdout (-O-). Vervang hier de URL door de URL van de sleutel die u wilt downloaden en aan uw systeem wilt toevoegen
gpg --dearmor: het gpg-commando is de OpenPGP-coderings- en ondertekeningstool; de optie --dearmor pakt de invoer van een OpenPGP ASCII-pantser uit
sudo tee /usr/share/keyrings/<myrepository>-archive-keyring.gpg: lees als supergebruiker (sudo) de standaardinvoer, wat in dit geval de uitvoer is die wordt geleverd door gpg --dearmor, en schrijf dit naar de /usr/share/keyrings/<mijnrepository>-archive-keyring.gpg bestand. Vervang de naam <mijnrepository> door een beschrijvende naam voor de repositorysleutel die u toevoegt
Als u bijvoorbeeld de APT-repository van de Signal-toepassing wilt toevoegen, gebruikt u:
wget -O- https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor | sudo tee /usr/share/keyrings/signal-archive-keyring.gpg
Of om het commando te gebruiken dat als voorbeeld wordt gegeven op de Debian-wiki (je moet het uitvoeren als root, bijvoorbeeld na het uitvoeren van sudo -i; het gebruikt curl in plaats van wget om de sleutel te downloaden):
curl <https://example.com/key/repo-key.gpg> | gpg --dearmor > /usr/share/keyrings/<myrepository>-archive-keyring.gpg
Voorbeeld van het gebruik van deze opdracht om de Signal APT-repository toe te voegen:
curl https://updates.signal.org/desktop/apt/keys.asc | gpg --dearmor > /usr/share/keyrings/signal-archive-keyring.gpg
Voor niet-ASCII-gepantserde OpenPGP-sleutels
Download de OpenPGP-sleutel met wget en voeg deze toe aan uw systeem met behulp van:
wget -O- <https://example.com/key/repo-key.gpg> | sudo tee /usr/share/keyrings/<myrepository-archive-keyring.gpg>
Of om het commando te gebruiken dat als voorbeeld wordt gegeven op de Debian-wiki (je moet het als root uitvoeren, bijvoorbeeld na het uitvoeren van sudo -i):
wget -O /usr/share/keyrings/<myrepository-archive-keyring.gpg> <https://example.com/key/repo-key.gpg>
Ik heb hier geen voorbeeld toegevoegd omdat ik geen repository van derden kon vinden die een niet-ASCII-gepantserde OpenPGP-sleutel gebruikt.
Om OpenPGP-sleutels rechtstreeks van een sleutelserver naar een bestand in /usr/share/keyrings te importeren:
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/<myrepository>-archive-keyring.gpg --keyserver <hkp://keyserver.ubuntu.com:80> --recv-keys <fingerprint>
In plaats van hkp://keyserver.ubuntu.com:80 kunt u desgewenst een andere sleutelserver gebruiken.
Voorbeeld waarin we de OpenPGP-sleutel van de Linux Uprising Shutter PPA importeren naar /usr/share/keyrings/linux-uprising-shutter-archive-keyring.gpg (de vingerafdruk kan worden verkregen door op het groene "Technische details hierover" te klikken PPA"-link van de PPA-pagina - deze staat onder "Deze PPA aan uw systeem toevoegen"):
sudo gpg --no-default-keyring --keyring /usr/share/keyrings/linux-uprising-shutter-archive-keyring.gpg --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 1CC3D16E460A94EE17FE581CEA8CACC073C3DB2A
- Voeg de vermelding source.list in de repository toe
Bronnen.list-items uit de repository van derden moeten worden toegevoegd in de map /etc/apt/sources.list.d, en niet rechtstreeks in het bestand /etc/apt/sources.list.
Voorheen zag een source.list-bestand uit de map /etc/apt/sources.list.d er als volgt uit:
deb https://repository.example.com/debian/stable main
Om echter de sleutel te kunnen gebruiken die in stap 1 is toegevoegd, moet het bestandsources.list er nu als volgt uitzien (/etc/apt/sources.list.d/):
deb [signed-by=/usr/share/keyrings/<myrepository>-archive-keyring.gpg] <https://repository.example.com/debian/ stable main>
Het is belangrijk op te merken dat als je ook de optie arch=amd64 samen met Signed-by wilt toevoegen, je de twee opties moet scheiden door een spatie, zoals deze:
deb [arch=amd64 signed-by=/usr/share/keyrings/<myrepository>-archive-keyring.gpg] <https://repository.example.com/debian/ stable main>
Als u bijvoorbeeld de Signal-repository aan uw Debian/Ubuntu-systeem wilt toevoegen, maakt u een bestand aan (als root; om bijvoorbeeld de Nano-opdrachtregelteksteditor te openen met dit bestand: sudo nano /etc/apt/sources.list.d/signal .list) genaamd signal.list in /etc/apt/sources.list.d met de volgende inhoud (ervan uitgaande dat je de sleutel al hebt gedownload zoals hierboven uitgelegd, als /usr/share/keyrings/signal-archive-keyring.gpg ):
deb [arch=amd64 signed-by=/usr/share/keyrings/signal-archive-keyring.gpg] https://updates.signal.org/desktop/apt xenial main
Vergeet niet om sudo apt update uit te voeren nadat u een nieuwe ondertekeningssleutel en repository hebt toegevoegd, om de softwarebronnen bij te werken.
Je kunt de repository ook in het Deb822-bestandsformaat toevoegen, maar om te proberen de zaken niet nog ingewikkelder te maken, zal ik dat hier niet uitleggen. U kunt daarover lezen op de Debian-wiki.
Hoe u een reeds bestaande OpenPGP-sleutel verwijdert die is toegevoegd aan de vertrouwde APT-sleutelhanger (/etc/apt/trusted.gpg of /etc/apt/trusted.gpg.d)
Wanneer u OpenGPG-sleutels toevoegt zoals hierboven uitgelegd, wilt u dezelfde sleutel verwijderen uit /etc/apt/trusted.gpg of /etc/apt/trusted.gpg.d, voor het geval u hem daar eerder hebt toegevoegd. Als u dit niet doet, is er geen extra beveiligingsvoordeel.
Het verwijderen van bestaande OpenPGP-sleutels uit de map /etc/apt/trusted.gpg.d zou vrij eenvoudig moeten zijn. Dat komt omdat de sleutelbestandsnaam behoorlijk beschrijvend moet zijn. De gpg-sleutelbestandsnaam van de Tor-repository uit deze map op mijn systeem is bijvoorbeeld deb.torproject.org-keyring.gpg
Dus om reeds bestaande sleutels die zijn toegevoegd aan /etc/apt/trusted.gpg.d te verwijderen, hoeft u alleen maar de sleutelbestanden te verwijderen. U moet dit als root doen, dus open de bestandsbeheerder van uw keuze als root, met behulp van admin:// (om bijvoorbeeld een locatie als root in Nautilus te openen, drukt u op Ctrl + L zodat u in de adresbalk kunt typen en typ admin:///etc/apt/trusted.gpg.d), of verwijder ze van de opdrachtregel met behulp van:
sudo rm /etc/apt/trusted.gpg.d/
De onderstaande instructies werken ook voor het verwijderen van sleutels uit de map /etc/apt/trusted.gpg.d.
Wat betreft het verwijderen van APT gpg-sleutels die zijn opgeslagen in /etc/apt/trusted.gpg, liggen de zaken iets ingewikkelder. Gebruik het volgende commando om alle APT OpenPGP-sleutels weer te geven die zijn geïmporteerd in zowel /etc/apt/trusted.gpg als /etc/apt/trusted.gpg.d:
apt-key list
De sleutels die zijn opgeslagen in /etc/apt/trusted.gpg moeten bovenaan worden vermeld, gevolgd door de sleutels uit de map /etc/apt/trusted.gpg.d. U moet de sleutelvloeistof inspecteren om erachter te komen welke sleutel u wilt verwijderen. Normaal gesproken moet de uid het bedrijf of de gebruiker tonen die de sleutel heeft ondertekend, gevolgd door hun e-mailadres.
Sleutels uit /etc/apt/trusted.gpg worden als volgt weergegeven in de apt-key-lijst (voorbeeld):
pub rsa4096 2016-04-22 [SC]
B9F8 D658 297A F3EF C18D 5CDF A2F6 83C5 2980 AECF
uid [ unknown] Oracle Corporation (VirtualBox archive signing key) <info@virtualbox.org>
sub rsa4096 2016-04-22 [E]
De sleutel-ID bestaat uit de laatste 8 tekens van de vingerafdruk van de GPG-sleutel (in dit voorbeeld is dat dus 2980AECF).
Om een sleutel te verwijderen (uit /etc/apt/trusted.gpg of /etc/apt/trusted.gpg.d), kunt u nu het volgende gebruiken:
sudo apt-key del <KEY-ID>
Als u bijvoorbeeld de sleutel uit het bovenstaande voorbeeld wilt verwijderen, gebruikt u:
sudo apt-key del 2980AECF
Geen opmerkingen:
Een reactie posten
Opmerking: Alleen leden van deze blog kunnen een reactie posten.