كلمةُ المرور تُخمَّن ألف مرّةٍ في الثانية بآلةٍ لا تنام. والمفتاحُ لا يُخمَّن: فليس فيه ما هو قصيرٌ كفايةً ليُجرَّب. والتحويلُ يكلّف عشر دقائق ويزيل صنفًا كاملًا من الهجوم.

ولّد الزوج

ssh-keygen -t ed25519 -C "you@yourmachine"

‏Ed25519 هو الافتراضُ الحاليّ: قصيرٌ سريعٌ قويّ. وأعطه عبارةَ مرور — فإن سُرق الحاسوب المحمول فالعبارةُ هي الشيء الوحيد بين اللصّ وخوادمك.

ثبّت النصف العامّ

ssh-copy-id ops@your-server

هذا يُلحق المفتاح العامّ بـ ~/.ssh/authorized_keys على الخادم. والنصفُ الخاصّ لا يغادر جهازك أبدًا ولا ينبغي له.

اختبره في نافذةٍ جديدة

لا تُغلق الجلسة التي أنت فيها. افتح طرفيّةً ثانية وسجّل الدخول بالمفتاح. فإن أخفق فالنافذةُ الأولى ما زالت عندك لتصلحه منها.
ssh ops@your-server

ثمّ أطفئ كلمات المرور

# /etc/ssh/sshd_config
PasswordAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
# then
systemctl reload ssh

أعد التحميل لا التشغيل: فإعادةُ التحميل تُبقي الجلسات القائمة حيّة، فلا يقطعك خطأ.

حين لا يعمل

  • الأذون. يرفض SSH المفاتيح في دليلٍ يقرؤه غيرُك: chmod 700 ~/.ssh; chmod 600 ~/.ssh/authorized_keys
  • المستخدم الخطأ. يوضَع المفتاح في دليل منزل المستخدم الذي تدخل به، لا في دليل الجذر.
  • اقرأ السبب. فالأمر ssh -v ops@server يطبع كلّ مفتاحٍ يعرضه ولِمَ رُفض كلٌّ منها.
مفتاحٌ لكلّ جهاز، لا مفتاحٌ واحد منسوخ إلى كلّ جهاز. فحين يضيع حاسوبٌ محمول تحذف سطرًا واحدًا على الخادم، ولا يتغيّر شيءٌ آخر.