GPG-WKS-SERVER(1) GNU Privacy Guard 2.4 GPG-WKS-SERVER(1)

gpg-wks-server - کارساز ارائهدهنده سرویس کلید وب (Web Key Service)

gpg-wks-server [گزینه‌ها] --receive
gpg-wks-server [گزینه‌ها] --cron
gpg-wks-server [گزینه‌ها] --list-domains
gpg-wks-server [گزینه‌ها] --check-key user-id
gpg-wks-server [گزینه‌ها] --install-key file user-id
gpg-wks-server [گزینه‌ها] --remove-key user-id
gpg-wks-server [گزینه‌ها] --revoke-key user-id

دستور gpg-wks-server پیاده‌سازی سمت کارساز از سرویس کلید وب (Web Key Service) است. این برنامه درخواست‌های انتشار را دریافت می‌کند، درخواست‌های تایید ارسال می‌نماید، تاییدها را دریافت کرده و کلید را منتشر می‌کند. همچنین دارای قابلیت‌هایی برای تسهیل راه‌اندازی و نگهداری دایرکتوری کلید وب (Web Key Directory یا WKD) است.

هنگامی که همراه با دستور --receive استفاده شود، یک ایمیل منفرد از سرویس کلید وب پردازش می‌شود. معمولاً این دستور همراه با گزینه --send برای ارسال مستقیم ایمیل‌های تولیدشده به فرستنده به کار می‌رود. برای نمونه‌ای از راه‌اندازی، به بخش مثال‌ها در ادامه مراجعه کنید.

دستور --cron برای وظایف پاک‌سازی دوره‌ای استفاده می‌شود. به عنوان مثال، درخواست‌های تایید‌نشده باید پس از سپری شدن زمان انقضای آن‌ها حذف شوند. بهترین حالت اجرای روزانه این دستور از طریق یک کار زمان‌بندی‌شده (cron job) است.

دستور --list-domains تمامی دامنه‌های پیکربندی‌شده را چاپ می‌کند. علاوه بر این، پوشه‌های مفقود برای پیکربندی را ایجاد کرده و هشدارهای مربوط به مشکلات موجود در پیکربندی را نمایش می‌دهد.

دستور --check-key (یا به طور خلاصه --check) بررسی می‌کند که آیا کلیدی با شناسه کاربری (user-id) مشخص‌شده نصب شده است یا خیر. در این حالت، فرآیند با موفقیت پایان می‌یابد؛ برای چاپ پیام‌های تشخیصی نیز از گزینه -v استفاده کنید. اگر کلید نصب نشده باشد، یک پیام تشخیصی چاپ شده و فرآیند با وضعیت شکست خاتمه می‌یابد؛ جهت عدم نمایش پیام تشخیصی، از گزینه -q استفاده کنید. می‌توان بیش از یک شناسه کاربری ارائه داد؛ همچنین گزینه --with-file را ببینید.

دستور --install-key یک کلید را به صورت دستی در WKD نصب می‌کند. آرگومان‌های آن شامل فایلی حاوی بلوک کلید (file) و شناسه کاربری جهت نصب (user-id) است. اگر آرگومان نخست شبیه به اثر انگشت (fingerprint) باشد، کلید از جاکلیدی (keyring) جاری دریافت می‌شود؛ برای اجبار به استفاده از فایل، پیشوند "./" را به ابتدای آرگومان نخست اضافه کنید. اگر هیچ آرگومانی ارائه نشود، پارامترها از ورودی استاندارد (stdin) خوانده می‌شوند؛ قالب مورد انتظار سطرهایی با اثر انگشت و صندوق پستی (mailbox) است که با فاصله از یکدیگر جدا شده‌اند.

دستور --remove-key یک کلید را از WKD حذف و پاک می‌کند. در صورت موفقیت، فرآیند وضعیت موفق را بازمی‌گرداند؛ برای چاپ پیام‌های تشخیصی، از گزینه -v استفاده کنید. اگر کلید نصب نشده باشد، پیام تشخیصی چاپ شده و برنامه با شکست خاتمه می‌یابد؛ جهت جلوگیری از نمایش پیام تشخیصی، از گزینه -q استفاده کنید.

دستور --revoke-key هنوز عملیاتی و پیاده‌سازی نشده است.

دستور gpg-wks-server گزینه‌های زیر را می‌پذیرد:

استفاده از dir به عنوان دایرکتوری سطح بالا برای دامنه‌ها. مقدار پیش‌فرض ‘/var/lib/gnupg/wks’ است.
استفاده از mailaddr به عنوان نشانی فرستنده پیش‌فرض.
افزودن سرآیند ایمیل "name: value" به تمامی ایمیل‌های ارسالی.
ارسال مستقیم ایمیل‌های ایجادشده با استفاده از دستور sendmail. این گزینه نیازمند نصب بودن آن دستور در سیستم است.
نوشتن ایمیل تولیدشده در فایل مشخص‌شده (file). توجه داشته باشید که تعیین مقدار - برای file باعث نوشتن آن در خروجی استاندارد (stdout) می‌شود.
هنگامی که همراه با دستور --list-domains به کار رود، برای هر دامنه نصب‌شده نام دامنه و مسیر دایرکتوری آن را چاپ می‌کند.
هنگامی که همراه با دستور --check-key به کار رود، برای هر شناسه کاربری، نشانی، حرف 'i' برای کلید نصب‌شده یا 'n' برای کلید نصب‌نشده، و نام فایل را چاپ می‌کند.
فعال‌سازی خروجی اطلاعاتی تفصیلی.
غیرفعال کردن تقریباً تمام پیام‌های اطلاعاتی.
چاپ نسخه برنامه و خروج.
نمایش یک صفحه راهنمای خلاصه و خروج.

سرویس کلید وب نیازمند یک پوشه کاری برای ذخیره کلیدهای در انتظار انتشار است. با دسترسی کاربر ریشه (root) یک دایرکتوری کاری بسازید:

# mkdir /var/lib/gnupg/wks
# chown webkey:webkey /var/lib/gnupg/wks
# chmod 2750 /var/lib/gnupg/wks

سپس با حساب کاربری webkey، دایرکتوری‌های مربوط به همه دامنه‌های خود را بسازید. در اینجا ما این کار را برای "example.net" انجام می‌دهیم:

$ mkdir /var/lib/gnupg/wks/example.net

سپس دستور زیر را اجرا کنید:

$ gpg-wks-server --list-domains

تا زیردایرکتوری‌های مورد نیاز را با دسترسی‌ها و مجوزهای صحیح ایجاد کند. برای هر دامنه باید یک نشانی ثبت (submission address) پیکربندی شود. تمام ایمیل‌های سرویس به آن نشانی ارسال خواهند شد. این نشانی می‌تواند برای همه دامنه‌های پیکربندی‌شده یکسان باشد، به عنوان مثال:

$ cd /var/lib/gnupg/wks/example.net
$ echo key-submission@example.net >submission-address

پروتکل سرویس کلید وب ایجاب می‌کند که کلید مورد نظر جهت انتشار، در قالب یک ایمیل رمزگذاری‌شده به سرویس ارسال گردد. از این رو شما باید یک کلید برای نشانی ثبت تولید کنید:

$ gpg --batch --passphrase '' --quick-gen-key key-submission@example.net
$ gpg -K key-submission@example.net

خروجی دستور آخر مشابه زیر خواهد بود:

sec   rsa3072 2016-08-30 [SC]
      C0FCF8642D830C53246211400346653590B3795B
uid           [ultimate] key-submission@example.net
              bxzcxpxk8h87z1k7bzk86xn5aj47intu@example.net
ssb   rsa3072 2016-08-30 [E]

اثر انگشت (fingerprint) را از آن خروجی برداشته و کلید را به صورت دستی منتشر کنید:

$ gpg-wks-server --install-key C0FCF8642D830C53246211400346653590B3795B \
>                key-submission@example.net

در پایان، نشانی ثبت باید به اسکریپتی هدایت شود که gpg-wks-server را اجرا می‌کند. برای این کار می‌توان از دستور procmail استفاده کرد: نشانی ثبت را به کاربر "webkey" تغییر مسیر دهید و این خطوط را در فایل ‘.procmailrc’ کاربر webkey قرار دهید:

:0
* !^From: webkey@example.net
* !^X-WKS-Loop: webkey.example.net
|gpg-wks-server -v --receive \
     --header X-WKS-Loop=webkey.example.net \
     --from webkey@example.net --send

gpg-wks-client(1)

2025-02-19 GnuPG 2.4.9