تخطَّ إلى المحتوى

مفاتيح SSH

قيد التطوير

مفتاح SSH نوع عنصر قائم بذاته، له فئته في الشريط الجانبي وقسمه الخاص حين تُجمَّع القائمة حسب النوع. وهو مشفّر على جهازك مثل كل عنصر: لا يرى الخادم المفتاح الخاص ولا المفتاح العام ولا البصمة ولا التعليق.

الحقل ملاحظات
المفتاح الخاص بصيغة OpenSSH، ويُخزَّن بلا عبارة مرور: فالخزنة تشفّره. لا يُعرض ولا يُنسخ إلا بعد أن تفتح القفل بكلمة المرور الرئيسية أو بفتح قفل الجهاز، أو تؤكد ذلك مرة أخرى؛ ولا يُحفظ في ملف إلا بعد أن تؤكد مرة أخرى.
المفتاح العام ssh-ed25519 AAAA…، بلا التعليق. هذا ما تضعه على الخادم.
نوع المفتاح خوارزمية SSH (ssh-ed25519 وecdsa-sha2-nistp256 وssh-rsa و…)، وتُعرض للناس بصيغة Ed25519 وECDSA P-256 وهكذا.
البصمة SHA256:…، وهي نفسها التي يطبعها ssh-keygen -l -E sha256. هي العنوان الفرعي في القائمة وتميّز المفاتيح بعضها عن بعض.
التعليق عادةً you@computer؛ وهو يأتي في آخر سطر authorized_keys. تتجاهله الخوادم.
عبارة المرور اختيارية. تحمي النسخ التي تصدّرها؛ أما المفتاح في الخزنة فتحميه الخزنة نفسها.
الملاحظات وحقول أخرى مثل أي عنصر.

اختر مفتاح SSH جديد، ثم نوع المفتاح وإنشاء:

  • Ed25519 يعمل مع كل الخوادم الحالية تقريبًا وهو الموصى به.
  • ECDSA P-256 وP-384 للخوادم التي تطلب هذين المنحنيين.
  • RSA 3072 أو RSA 4096 للخوادم القديمة التي لا تدعم Ed25519. RSA أبطأ وأكبر حجمًا؛ فضّل Ed25519 حيث تستطيع.

يُنشأ المفتاح على الجهاز بواسطة نواة Octa Pass. ولا يغادر المفتاح الخاص الجهاز دون تشفير. فضّل Ed25519. ومفاتيح RSA تعمل أيضًا: يُوقَّع بها عبر ring، لا عبر حزمة rsa، بسبب تنبيه أمني مفتوح متعلق بالتوقيت.

استورد ملف مفتاح خاص، أو الصق نصه:

  • مفاتيح OpenSSH الخاصة (-----BEGIN OPENSSH PRIVATE KEY-----)، بعبارة مرور أو دونها.
  • مفاتيح PEM: PKCS#1 RSA (RSA PRIVATE KEY) وSEC1 EC (EC PRIVATE KEY) وDSA (DSA PRIVATE KEY).
  • مفاتيح PKCS#8 (PRIVATE KEY وENCRYPTED PRIVATE KEY)، عادية أو محمية بعبارة مرور.

يطلب Octa Pass عبارة المرور حين يكون للملف واحدة، ثم يقرأ المفتاح العام والنوع والبصمة من المفتاح الخاص. اختر الملف بدون .pub: لا يمكن تحويل مفتاح عام إلى مفتاح خاص، ويقول التطبيق ذلك.

بعض المفاتيح تُحفظ لكن لا يمكن استخدامها بعد:

  • مفاتيح DSA ومفاتيح أمان FIDO (sk-) تُخزَّن مع مفتاحها العام وبصمتها. ولا يمكن إنشاؤها أو استخدامها أو تحويلها في هذا الإصدار.
  • مفاتيح PuTTY (.ppk) والمفاتيح المشفّرة بـ 3DES لا تُقرأ. حوّلها بـ ssh-keygen أولًا.

الملفات المشوّهة وعبارة المرور الخاطئة والصيغ غير المدعومة تحصل كل منها على رسالة واضحة بدلًا من عنصر معطوب.

يعرض العنصر المفتاح العام والبصمة والنوع والتعليق. انسخ المفتاح العام من العنصر، أو من صف القائمة في إضافة المتصفح. يبقى المفتاح الخاص مخفيًا إلى أن تختار أظهِر. إذا فتحت قفل Octa Pass بكلمة المرور الرئيسية أو بفتح قفل الجهاز فهذا يكفي؛ وإلا يطلب منك تأكيد أنك أنت (راجع الإظهار والنسخ). أما تصدير المفتاح الخاص فيسأل في كل مرة.

تعرض الإضافة عناصر مفاتيح SSH وبصمتها وزر نسخ للمفتاح العام فقط. ولا تقرأ المفتاح الخاص ولا تعرضه أبدًا.

  • احفظ المفتاح الخاص يكتب ملف OpenSSH. اختر عبارة مرور للملف أو اتركها فارغة. وإذا كانت للعنصر عبارة مرور محفوظة، تُعرض افتراضيًا.
  • احفظ المفتاح العام يكتب سطر authorized_keys (المفتاح وتعليقه).

يكتب سطر الأوامر المفاتيح الخاصة بحيث لا يقرؤها غيرك (الوضع 0600) ولا يستبدل ملفًا موجودًا دون --force.

نقل المفاتيح بين التطبيقات

Section titled “نقل المفاتيح بين التطبيقات”

يحمل تصدير Octa Pass نفسه وCredential Exchange Format (CXF) عناصر sshKey دون فقد. حين يصدّر Octa Pass بصيغة CXF، يُكتب المفتاح بوصفه بيانات اعتماد ssh-key ومفتاحه الخاص بصيغة PKCS#8 وحقل مخصص اختياري لعبارة المرور. واستيراد ملف كهذا يعيده عنصر مفتاح SSH. لا يمكن تحويل مفاتيح DSA وFIDO إلى CXF، ويُبلَّغ عنها بأنها تُركت.

يستطيع تطبيق سطح المكتب أن يعمل وكيل SSH لك، فتستخدم ssh وGit وبيئات التطوير المفاتيح التي في خزنتك دون نسخة على القرص.

  1. في الإعدادات ← وكيل SSH، فعّل شغّل وكيل SSH. يبقى متوقفًا حتى تفعل ذلك، والاختيار لهذا الحاسوب فقط.
  2. اختر استخدمه مع SSH، فيضيف مقطعًا مميّزًا في نهاية ~/.ssh/config، وتحتفظ الخوادم التي لها IdentityAgent خاص بها به. أو اضبطه لطرفية واحدة: export SSH_AUTH_SOCK=~/.octapass/agent.sock.

بعدها يسرد ssh-add -l مفاتيحك ويعمل ssh ببساطة.

  • توافق على كل استخدام. كل توقيع يطلب Touch ID أو Windows Hello أو كلمة مرور النظام، مع اسم المفتاح والغرض منه والبرنامج الذي يطلبه. والإلغاء يرفضه. وعلى حاسوب بلا قفل تظهر بدلًا من ذلك نافذة سماح / رفض.
  • أثناء فتح الخزنة فقط. الطلب إلى خزنة مقفلة يفتح طلب فتح القفل بالجهاز. وإذا ألغيته، أو لم يكن فتح القفل بالجهاز مفعّلًا، لا يعرض الوكيل شيئًا لمدة دقيقة، فلا تظل الأدوات التي تستعلم منه تسأل.
  • يسرد ويوقّع فقط. لا يستطيع ssh-add إضافة مفاتيح أو إزالتها: الخزنة هي مالكتها.
  • مفاتيح أقل: تتوقف الخوادم بعد نحو ست محاولات، فإذا كانت لديك مفاتيح كثيرة، ألغِ تحديد اعرض هذا المفتاح عبر وكيل SSH في محرر المفتاح.
  • Git: الأمر octapass git setup --signing-key <key> --agent يوقّع الإيداعات عبر الوكيل، أو اضبط gpg.format = ssh وuser.signingkey = key::<public key> بنفسك. راجع سطر الأوامر.
  • التمرير (ssh -A) يعمل ويسألك عند كل استخدام، لكن الطلب يسمّي ssh المحلي لديك، لا البرنامج البعيد.

على Mac يعمل التطبيق في عزلة (sandbox)، فيكون مقبس الوكيل في مجلد التطبيق نفسه، ~/Library/Group Containers/<team>.app.octap/agent.sock، ولا يعدّل Octa Pass الملف ~/.ssh/config بنفسه. تعرض الإعدادات ← وكيل SSH المسار مع زر للنسخ، والأسطر التي تضيفها إلى ~/.ssh/config (في المسار مسافة، فأبقِ علامات الاقتباس):

Host *
IdentityAgent "~/Library/Group Containers/<team>.app.octap/agent.sock"

أو لطرفية واحدة: export SSH_AUTH_SOCK="$HOME/Library/Group Containers/<team>.app.octap/agent.sock". و<team> هو فريق Apple الذي وقّع التطبيق؛ وتعرض الإعدادات المسار كاملًا.

على Windows يستخدم الوكيل القناة openssh-ssh-agent التي يبحث عنها ssh.exe في Windows. ولا يستطيع أخذها إلا وكيل واحد، فأوقف أولًا خدمة OpenSSH Authentication Agent؛ وتعرض الإعدادات الخطأ إن كانت مأخوذة.

لحزمة rsa تنبيه أمني مفتوح، RUSTSEC-2023-0071 (هجوم Marvin)، وهو تسرّب توقيتي في عمليات المفتاح الخاص. وكان لا يزال بلا إصلاح حين فحصناه آخر مرة في 2 نوفمبر 2026، في 0.9.10 وفي 0.10.0-rc.19. لذلك لا يوقّع Octa Pass بتلك الحزمة أبدًا: تمر تواقيع RSA عبر ring، وهي ثابتة الزمن. لا تُنشأ إلا تواقيع rsa-sha2-256 وrsa-sha2-512؛ ويُرفض ssh-rsa القديم القائم على SHA-1، لذلك لن يقبل خادم أقدم من أن يدعم SHA-2 مفتاح RSA الخاص بك. ولا تستطيع مفاتيح OpenPGP من نوع RSA التوقيع إطلاقًا، لأن تلك المكتبة ليس فيها خيار كهذا.

في تطبيق سطح المكتب، يسرد محرر المفاتيح المفاتيح الخاصة الموجودة أصلًا في ~/.ssh: اختر واحدًا لإدخاله، مع عبارة مروره إن كانت له. وعلى مفتاح محفوظ، يكتب احفظ في ~/.ssh المفتاح الخاص (بحيث لا يقرؤه غيرك) وملف .pub الخاص به، بعد أن تؤكد هويتك. ولا يستبدل ملفًا أبدًا ما لم تحدد ذلك المربع. ولا يحدث أي منهما من تلقاء نفسه: لا يراقب Octa Pass المجلد ولا يزامنه.

  • الشاشات الأصلية في iOS وAndroid.
  • ربط استيراد مديرين آخرين (Bitwarden وProton Pass و1PUX وKeeper) بنوع مفتاح SSH؛ وهي حاليًا تصل ملاحظات آمنة. CXF هو الاستثناء.