وكيل(SSH)

الاسم
ssh-agent - وكيل استيثاق OpenSSH

موجز
ssh-agent [-c | -s] [-DdTU] [-a bind_address] [-E fingerprint_hash] [-O option] [-P allowed_providers] [-t life] ssh-agent [-TU] [-a bind_address] [-E fingerprint_hash] [-O option] [-P allowed_providers] [-t life] command [arg ...] ssh-agent [-c | -s] -k ssh-agent -u

الوصف
ssh-agent هو برنامج لحفظ المفاتيح الخاصة المستخدمة لاستيثاق المفتاح العام. باستخدام متغيرات البيئة، يمكن تحديد موقع الوكيل واستخدامه آلي للاستيثاق عند تسجيل الدخول إلى أجهزة أخرى باستخدام ssh(1).

الخيارات هي كما يلي:

-a bind_address
    وصل الوكيل بمقبس نطاق UNIX bind_address. المبدئي هو إنشاء مقبس في مسار عشوائي يطابق $HOME/.ssh/agent/s.*.

-c  توليد أوامر C-shell على المخرج القياسي. هذا هو المبدئي إذا بدا SHELL وكأنه نمط قشرة csh.

-D  نمط المقدمة. عند تحديد هذا الخيار، لن يتفرع ssh-agent.

-d  نمط التصحيح. عند تحديد هذا الخيار، لن يتفرع ssh-agent وسيكتب معلومات التصحيح إلى الخطأ القياسي.

-E fingerprint_hash
    يحدد خوارزمية التجزئة المستخدمة عند عرض بصمات المفاتيح. الخيارات الصالحة هي: “md5” و “sha256”. المبدئي هو “sha256”.

-k  اقتل الوكيل الحالي (المعطى بواسطة متغير البيئة SSH_AGENT_PID).

-O option
    حدد خيارًا عند بدء ssh-agent. الخيارات المدعومة هي: allow-remote-pkcs11 و no-restrict-websafe و websafe-allow.

    خيار allow-remote-pkcs11 يسمح لعملاء ssh-agent المعاد توجيهه بتحميل مكتبات موفر PKCS#11 أو FIDO. مبدئيًا، يمكن فقط للعملاء المحليين تنفيذ هذه العملية. لاحظ أن الإشارة إلى أن عميل ssh-agent بعيد تتم بواسطة ssh(1) ، واستخدام أدوات أخرى لتوجيه الوصول إلى مقبس الوكيل قد يتجاوز هذا التقييد.

    خيار no-restrict-websafe يوجه ssh-agent للسماح بالتوقيعات باستخدام مفاتيح FIDO التي قد تكون طلبات استيثاق ويب. مبدئيًا، يرفض ssh-agent طلبات التوقيع لمفاتيح FIDO حيث لا تبدأ سلسلة تطبيق المفتاح بـ “ssh:” وعندما لا تبدو البيانات المراد توقيعها كطلب استيثاق مستخدم ssh(1) أو توقيع ssh-keygen(1). السلوك المبدئي يمنع الوصول المعاد توجيهه إلى مفتاح FIDO من توجيه القدرة على الاستيثاق إلى مواقع الويب ضمنيًا.

    بدلاً من ذلك، خيار websafe-allow يسمح بتحديد قائمة نمط من سلاسل تطبيق المفتاح لاستبدال قائمة السماح المبدئية للتطبيق، على سبيل المثال: “websafe-allow=ssh:*,example.org,*.example.com”

    انظر الأنماط في ssh_config(5) لوصف بناء جملة قائمة النمط.

-P allowed_providers
    حدد قائمة نمط من المسارات المقبولة لمكتبات موفر PKCS#11 ووسيطة مصادق FIDO المشتركة التي قد تستخدم مع خيارات -S أو -s لـ ssh-add(1). المكتبات التي لا تطابق قائمة النمط سيتم رفضها. القائمة المبدئية هي “/usr/lib*/*,/usr/local/lib*/*”.

    انظر الأنماط في ssh_config(5) لوصف بناء جملة قائمة النمط.

-s  توليد أوامر قشرة Bourne على المخرج القياسي. هذا هو المبدئي إذا لم يبد SHELL وكأنه نمط قشرة csh.

-T  وصل مقبس الوكيل في دليل فرعي عشوائي من النموذج $TMPDIR/ssh-XXXXXXXXXX/agent.<ppid> ، بدلاً من السلوك المبدئي لاستخدام اسم عشوائي يطابق $HOME/.ssh/agent/s.*.

-t عمر
    تعيين قيمة مبدئية للعمر الأقصى للهويات المضافة إلى الوكيل. يمكن تحديد العمر بالثواني أو بتنسيق زمني محدد في sshd_config(5). عمر محدد لهوية باستخدام ssh-add(1) يتجاوز هذه القيمة. بدون هذا الخيار، العمر الأقصى المبدئي هو للأبد.

-U  يوجه ssh-agent بعدم تنظيف مقابس الوكيل القديمة تحت $HOME/.ssh/agent/.

-u  يوجه ssh-agent لتنظيف مقابس الوكيل القديمة فقط تحت $HOME/.ssh/agent/ ثم الخروج فورًا. إذا أعطي هذا الخيار مرتين، سيحذف ssh-agent مقابس الوكيل القديمة بغض النظر عن اسم المضيف الذي أنشأها.

command [arg ...]
    إذا أعطي أمر (وسائط اختيارية)، يتم تنفيذه كعملية فرعية للوكيل. يخرج الوكيل آلي عندما ينتهي الأمر المعطى على سطر الأوامر.

هناك ثلاث طرق رئيسية لإعداد وكيل. الأولى هي في بداية جلسة X، حيث تبدأ جميع النوافذ أو البرامج الأخرى كأطفال لبرنامج ssh-agent. يبدأ الوكيل أمرًا يتم تصدير متغيرات بيئته تحته، على سبيل المثال ssh-agent xterm &. عندما ينتهي الأمر، ينتهي الوكيل أيضًا.

الطريقة الثانية تستخدم لجلسة تسجيل الدخول. عند بدء ssh-agent ، يطبع أوامر القشرة المطلوبة لتعيين متغيرات بيئته، والتي بدورها يمكن تقييمها في القشرة المستدعية، على سبيل المثال eval `ssh-agent -s`.

في كلتا هاتين الحالتين، ينظر ssh(1) إلى هذه المتغيرات البيئية ويستخدمها لإنشاء اتصال بالوكيل.

الطريقة الثالثة لتشغيل ssh-agent هي عبر تفعيل المقبس من عملية مشرفة، مثل systemd. في هذا النمط، تنشئ العملية المشرفة مقبس الاستماع وتكون مسؤولة عن بدء ssh-agent حسب الحاجة، وأيضًا عن توصيل موقع مستمع المقبس إلى البرامج الأخرى في جلسة المستخدم. يستخدم تفعيل المقبس عندما يبدأ ssh-agent بأي من العلمين -d أو -D ، ولا يوجد عنوان استماع مقبس محدد بواسطة العلم -a ، ويتم توفير كلا متغيري البيئة LISTEN_FDS و LISTEN_PID بشكل صحيح من قبل العملية المشرفة.

الوكيل لا يحتوي في البداية على أي مفاتيح خاصة. تضاف المفاتيح باستخدام ssh-add(1) أو بواسطة ssh(1) عند تعيين AddKeysToAgent في ssh_config(5). يمكن تخزين هويات متعددة في ssh-agent بشكل متزامن وسيستخدمها ssh(1) آلي إذا كانت موجودة. يستخدم ssh-add(1) أيضًا لإزالة المفاتيح من ssh-agent والاستعلام عن المفاتيح المحفوظة فيه.

يمكن توجيه الاتصالات إلى ssh-agent من مضيفين بعيدين إضافيين باستخدام الخيار -A في ssh(1) (لكن انظر التحذيرات الموثقة فيه)، مما يتجنب الحاجة إلى تخزين بيانات الاستيثاق على أجهزة أخرى. عبارات مرور الاستيثاق والمفاتيح الخاصة لا تمر أبدًا عبر الشبكة: يتم توجيه الاتصال بالوكيل عبر اتصالات SSH البعيدة وتُعاد النتيجة إلى الطالب، مما يسمح للمستخدم بالوصول إلى هوياته في أي مكان في الشبكة بطريقة آمنة.

سيحذف ssh-agent جميع المفاتيح التي حمّلها عند استقبال SIGUSR1.

البيئة

SSH_AGENT_PID
    عند بدء ssh-agent ، يخزن اسم معرف عملية الوكيل (PID) في هذا المتغير.

SSH_AUTH_SOCK
    عند بدء ssh-agent ، ينشئ مقبس UNIX-domain ويخزن مساره في هذا المتغير. يمكن الوصول إليه فقط من قبل المستخدم الحالي، لكن يمكن إساءة استخدامه بسهولة من قبل الجذر أو نسخة أخرى من نفس المستخدم.

في دبيان، يتم تثبيت ssh-agent مع تعيين بت set-group-id، لمنع هجمات ptrace(2) من استرجاع مواد المفاتيح الخاصة. هذا له أثر جانبي يتسبب في إزالة الرابط وقت التشغيل لبعض متغيرات البيئة التي قد تكون لها آثار أمنية للبرامج ذات set-id، بما في ذلك LD_PRELOAD ، LD_LIBRARY_PATH ، و TMPDIR. إذا كنت بحاجة إلى تعيين أي من هذه المتغيرات البيئية، ستحتاج إلى فعل ذلك في البرنامج الذي ينفذه ssh-agent.

الملفات

$HOME/.ssh/agent/s.*
    مقابس UNIX-domain المستخدمة لاحتواء الاتصال بوكيل الاستيثاق. يجب أن تكون هذه المقابس قابلة للقراءة فقط من قبل المالك. يجب إزالة المقابس آلي عند خروج الوكيل.

انظر أيضًا
ssh(1), ssh-add(1), ssh-keygen(1), ssh_config(5), sshd(8)

المؤلفون
-nosplit OpenSSH هو مشتق من الإصدار الأصلي والمجاني ssh 1.2.12 بواسطة Tatu Ylonen. قام Aaron Campbell, Bob Beck, Markus Friedl, Niels Provos, Theo de Raadt و Dug Song بإزالة العديد من الأخطاء، وإعادة إضافة ميزات أحدث، وإنشاء OpenSSH. ساهم Markus Friedl في دعم إصدارات بروتوكول SSH 1.5 و 2.0.

ترجمة
تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي <zayed.alsaidi@gmail.com>

هذه الترجمة هي وثيقة مجانية؛ راجع رخصة جنو العامة الإصدار 3: https://www.gnu.org/licenses/gpl-3.0.html أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات.

إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: kde-l10n-ar@kde.org.