dacker

کلید امضا و اعتماد

چطور مطمئن شوید بسته‌ها همان‌هایی‌اند که باید باشند، و این مطمئن‌بودن به چه چیزی تکیه دارد.

کلید امضای dacker

اثر انگشت
8F36 3F83 6263 F265 F686 BBB9 1363 921A A23C D7DB
شناسه
1363921AA23CD7DB
نام روی کلید
dacker.ir repository <repo@dacker.ir>
انقضا
(2029-09-27)
دریافت
dacker.gpg (باینری، برای signed-by) · dacker.asc (متنی)

اثر انگشت را بررسی کنید

کلید را دانلود کنید و اثر انگشتی را که gpg نشان می‌دهد با عدد بالا مقایسه کنید. هر دو باید دقیقاً یکی باشند:

bash
curl -fsSL https://repo.dacker.ir/dacker.asc | gpg --show-keys --with-fingerprint

کلیدی را که قبلاً روی سرور نصب کرده‌اید هم همین‌طور می‌شود بررسی کرد:

bash
gpg --show-keys --with-fingerprint /usr/share/keyrings/dacker.gpg

این اثر انگشت را از جای دیگری هم مقایسه کنید (مثلاً همین صفحه روی شبکهٔ دیگر)، نه فقط از خروجی همان سروری که کلید را از آن گرفته‌اید.

روی Ubuntu: یک کلید برای همه

فهرست‌های مخزن‌های Ubuntu با کلید dacker امضا می‌شوند. هر فایل منبع با signed-by=/usr/share/keyrings/dacker.gpg فقط به همین کلید اعتماد می‌کند، نه به همهٔ کلیدهای سیستم؛ پس این کلید نمی‌تواند برای مخزن‌های دیگرِ سرور شما امضا کند.

روی EL: کلیدِ خود سازنده

روی AlmaLinux، Rocky و RHEL خودِ بسته‌های RPM امضای سازندهٔ اصلی را دارند و dacker آن‌ها را دست‌نخورده نگه می‌دارد. فایل‌های .repo با gpgcheck=1 از dnf می‌خواهند امضای هر بسته را با کلید همان سازنده بسنجد. کلیدها از همین مخزن دریافت می‌شوند:

فایل کلیدشناسه‌هانام روی کلیدمخزن‌ها
PGDG-RPM-GPG-KEY-RHEL 40bca2b408b40d20 c07038af3576435c PostgreSQL RPM Repository <pgsql-pkg-yum@lists.postgresql.org> postgresql
PGDG-RPM-GPG-KEY-RHEL7 538d1bb7a7671845 64face1173e3b907 PostgreSQL RPM Repository <pgsql-pkg-yum@lists.postgresql.org> —
RPM-GPG-KEY-EPEL-7 6a2faea2352c64e5 Fedora EPEL (7) <epel@fedoraproject.org> —
RPM-GPG-KEY-EPEL-8 21ea45ab2f86d6a1 Fedora EPEL (8) <epel@fedoraproject.org> epel-extras، mariadb-10.11، mariadb-11.4، mariadb-11.8، php
RPM-GPG-KEY-EPEL-9 8a3872bf3228467c Fedora (epel9) <epel@fedoraproject.org> epel-extras، mariadb-10.11، mariadb-11.4، mariadb-11.8، php
RPM-GPG-KEY-remi 004e6f4700f97f56 bfc07f98697b675e Remi Collet <RPMS@FamilleCollet.com> php
RPM-GPG-KEY-remi.el10 003aef45dc4fe2dd c2fd3b2c2a0948e4 Remi's RPM repository 2024 (https\x3a//rpms.remirepo.net/) <remi@remirepo.net> —
RPM-GPG-KEY-remi.el8 29ac3647e9de723d 555097595f11735a Remi's RPM repository <remi@remirepo.net> php
RPM-GPG-KEY-remi.el9 8af2f648d18ae7d2 b19527f1478f8947 Remi's RPM repository (https\x3a//rpms.remirepo.net/) <remi@remirepo.net> php
RPM-GPG-KEY-remi2017 51d497e1fa7c159c e080f29f0364b949 Remi's RPM repository <remi@remirepo.net> —
RPM-GPG-KEY-remi2018 29ac3647e9de723d 555097595f11735a Remi's RPM repository <remi@remirepo.net> —
RPM-GPG-KEY-remi2019 503666ccbbae6f1b 548f5da2ae0cdb22 Remi's RPM repository (https\x3a//rpms.remirepo.net/) <remi@remirepo.net> —
RPM-GPG-KEY-remi2020 0714919e4c21a808 f29bdce32ac7ed89 Remi's RPM repository (https\x3a//rpms.remirepo.net/) <remi@remirepo.net> —
RPM-GPG-KEY-remi2021 8af2f648d18ae7d2 b19527f1478f8947 Remi's RPM repository (https\x3a//rpms.remirepo.net/) <remi@remirepo.net> —
RPM-GPG-KEY-remi2022 83c0639e1fef0014 a0b1f75436c84e82 Remi's RPM repository (https\x3a//rpms.remirepo.net/) <remi@remirepo.net> —
RPM-GPG-KEY-remi2023 1fcc05ccd15cf9a1 d5933dab6defd35e Remi's RPM repository (https\x3a//rpms.remirepo.net/) <remi@remirepo.net> —
RPM-GPG-KEY-remi2024 003aef45dc4fe2dd c2fd3b2c2a0948e4 Remi's RPM repository 2024 (https\x3a//rpms.remirepo.net/) <remi@remirepo.net> —
RPM-GPG-KEY-remi2025 061566968f1f4b2d 403b76849e73f609 Remi's RPM repository 2025 (https\x3a//rpms.remirepo.net/) <remi@remirepo.net> —
RPM-GPG-KEY-remi2026 834661ae4ae5dd90 ed5b58c5befa00e2 Remi's RPM repository 2026 (https\x3a//rpms.remirepo.net/) <remi@remirepo.net> —
adoptium.asc 3f4a517504a9cd61 843c48a565f8f04b Adoptium GPG Key (DEB/RPM Signing Key) <temurin-dev@eclipse.org> temurin
docker.asc c52feb6b621e9f35 Docker Release (CE rpm) <docker@docker.com> docker
elastic.asc ab6b7fcb60d31954 d27d666cd88e42b4 Elasticsearch (Elasticsearch Signing Key) <dev_ops@elasticsearch.org> elastic-8، elastic-9
gitlab-3D645A26AB9FBD22.asc 3cfcf9baf27eab47 3d645a26ab9fbd22 GitLab, Inc. <support@gitlab.com> gitlab-ce
gitlab-CB947AD886C8E8FD.asc ad997acc82dd593d cb947ad886c8e8fd GitLab, Inc. <support@gitlab.com> gitlab-ce
gitlab-repo.asc 1193dc8c5fff7061 3f01618a51312f3f GitLab B.V. (package repository signing key) <packages@gitlab.com> —
gitlab-runner-49F16C5CC3A0F81F.asc 49f16c5cc3a0f81f 6c57c29c6ba75a4e GitLab, Inc. <support@gitlab.com> gitlab-runner
gitlab-runner-4C80FB51394521E9.asc 4c80fb51394521e9 a674bf8135dfa027 GitLab, Inc. <support@gitlab.com> —
grafana.asc 488427a542157ea4 963fa27710458545 Grafana Labs <engineering@grafana.com> grafana
hashicorp.asc fc9ca96aca026560 HashiCorp Security (HashiCorp Package Signing) <security+packaging@hashicorp.com> hashicorp
kubernetes-v1.35.asc 234654da9a296436 isv\x3akubernetes OBS Project <isv\x3akubernetes@build.opensuse.org> kubernetes-v1.35
kubernetes-v1.36.asc 234654da9a296436 isv\x3akubernetes OBS Project <isv\x3akubernetes@build.opensuse.org> kubernetes-v1.36
kubernetes-v1.37.asc 234654da9a296436 isv\x3akubernetes OBS Project <isv\x3akubernetes@build.opensuse.org> kubernetes-v1.37
mariadb.asc c0f47944de8f6914 f1656f24c74cd1d8 MariaDB Signing Key <signing-key@mariadb.org> mariadb-10.11، mariadb-11.4، mariadb-11.8، mariadb-12.3
mongodb-7.0.asc 160d26bb1785ba38 MongoDB 7.0 Release Signing Key <packaging@mongodb.com> mongodb-7.0
mongodb-8.0.asc 41de058a4e7dca05 MongoDB 8.0 Release Signing Key <packaging@mongodb.com> mongodb-8.0
mongodb-9.asc 849af88aac5c6694 f366d55b602e502d MongoDB 9 Release Signing Key <packaging@mongodb.com> mongodb-9.0
mysql.asc b7b3b788a8d3785c c952c9bcdc49a81a MySQL Release Engineering <mysql-build@oss.oracle.com> mysql-8.4
nginx.asc 2fd21310b49f6b46 abf5bd827bd9bf62 bcdcd8a38d88a2b3 nginx signing key <signing-key-2@nginx.com>
nginx signing key <signing-key@nginx.com>
nginx signing key <signing-key-3@nginx.com>
nginx
nodesource.asc 6b88da4e3af28a14 94841681e801b874 Nodesource Operations <operations@nodesource.com> nodejs-22، nodejs-24

اگر کلید عوض یا باطل شود

تاریخ انقضای کلید dacker بالا آمده است. اگر کلید پیش از آن تمدید، جایگزین یا باطل شود، اثر انگشت و تاریخ تازه در همین صفحه و در صفحهٔ تغییرات می‌آید. در آن صورت:

  1. اثر انگشت کلید تازه را مثل بالا بررسی کنید.
  2. کلید قدیمی را با کلید تازه جایگزین کنید (همان دستور مرحلهٔ ۱ فایل را بازنویسی می‌کند):
bash
sudo curl -fsSL https://repo.dacker.ir/dacker.gpg -o /usr/share/keyrings/dacker.gpgsudo apt update

اگر apt update خطای NO_PUBKEY یا EXPKEYSIG داد، یعنی کلید روی سرور شما با کلیدی که مخزن با آن امضا شده یکی نیست؛ همین دو دستور را اجرا کنید. روی EL، کلیدهای سازنده را dnf هنگام نصب بررسی می‌کند و در صورت تغییرشان پیش از وارد کردن کلید تازه از شما تأیید می‌خواهد.