هل تمنحك مفاتيح SSH العامة وقتًا عصيبًا؟ جرب أحد هذه الحلول.

يعد SSH أداة مفيدة للاتصال بالأجهزة البعيدة، ولكن قد تواجه خطأ "تم رفض الإذن (المفتاح العام)" فيما يتعلق بالمفتاح العام الخاص بك على Linux. لحسن الحظ، هناك بعض الإصلاحات السهلة التي يمكنك تجربتها لاستكشاف هذه المشكلة وإصلاحها.

ما هو المفتاح العام؟

عندما تقوم بإنشاء زوج مفاتيح لـ SSH على نظام Linux، سيتم منحك مفتاحًا عامًا ومفتاحًا خاصًا. سيبقى المفتاح الخاص معك باعتباره سرًا يخضع لحراسة مشددة، لكن المفتاح العام هو ما سيتم نقله إلى الخوادم البعيدة للسماح لك بتسجيل الدخول بدون كلمة مرور. سيقوم عميل SSH المحلي الخاص بك بمطابقة المفتاح العام بالمفتاح الخاص عند الاتصال.

ميزة هذه الطريقة هي أنه عليك فقط إعطاء المفتاح العام. طالما أنك تحافظ على خصوصية مفتاحك الخاص، فهذا من شأنه أن يبقيك آمنًا في حالة تعرض مفتاحك العام للخطر. سيكون المفتاح العام عديم الفائدة من تلقاء نفسه.

يتطلب OpenSSH، عميل وخادم SSH الأكثر استخدامًا على نطاق واسع في عالم مفتوح المصدر، الملف الذي يحتوي على أي ملف المفاتيح العامة على الجهاز البعيد (".ssh/authorized_keys" في الدليل الرئيسي لديك)، للحصول على أذونات معينة. لن ينجح الأمر إذا تم تعيين أذونات الكتابة لمستخدمين آخرين، وهو ما يُعرف بأنه "قابل للكتابة عالميًا". نظرًا لأن اسم الدليل يبدأ بنقطة (.)، فلن يظهر في أي قوائم ls إلا إذا كنت تستخدم يأمر

instagram viewer
ليرة سورية -A.

قد تتغير الأذونات إذا تم نسخ الملف من كمبيوتر آخر أو قمت بإنشائه بنفسك. لحسن الحظ، هذا سهل الإصلاح.

تحقق من أذونات المفتاح العام الخاصة بك

ملف Author_keys هو ببساطة ملف نص عادي يحتوي على جميع المفاتيح العامة من العملاء الذين تريدهم أن يتمكنوا من تسجيل الدخول إلى حسابك على الجهاز البعيد. لرؤية أذوناتها ، استخدم الأمر ls مع الخيار -l :

ls -l ~/.ssh/authorized_keys

سيُظهر هذا إعدادات الأذونات للمالك والمجموعة والمستخدمين الآخرين. انتبه إلى الأحرف الستة الأخيرة في السلسلة. إذا رأيت حرف "w" فيها، فهذا يعني أن المجموعة أو الآخرين يمكنهم الكتابة إليها، مما يجعلها غير آمنة.

ستحتاج إلى أن يكون هذا الملف قابلاً للكتابة بواسطتك، ولكن ليس بواسطة المجموعة أو الآخرين. لمنح حق الوصول إلى المستخدمين الصحيحين، يمكنك تغيير الأذونات باستخدام chmod.

هناك طريقتان: عدديا ورمزيا.

الطريقة الرقمية أقصر، لكن عليك حفظ أرقام الأذونات الثمانية:

chmod 700 ~/.ssh/authorized_keys

الطريقة الرمزية أكثر تذكيرًا:

chmod go-w ~/.ssh/authorized_keys

نسخ المفاتيح بأمان باستخدام ssh-agent

يمكنك نسخ ولصق أي مفاتيح عامة يدويًا من جهازك في ملف ~/.ssh/.authorized_keys الملف، ولكن استخدام برنامج ssh-agent سيقلل من فرص حدوث أي أخطاء في الأذونات.

لبدء وكيل ssh، استخدم هذا الأمر:

eval "$(ssh-agent-s)"

لتسجيل الدخول إلى خادم بعيد باستخدام ssh-agent، استخدم الخيار -A مع ssh

ssh -A [email protected]

تحقق من إعدادات sshd للخادم البعيد

إذا فشلت أي من هذه الجهود، فقد يتعين عليك إجراء بعض تغييرات التكوين على خادم sshd على الجهاز البعيد إذا كان لديك حق الوصول إلى الجذر. إذا لم يكن الأمر كذلك، فمن المحتمل أن يتعين عليك الاتصال بمسؤول النظام لمساعدتك في حل أي مشكلات تتعلق باتصال SSH. هذه هي طريقة الملاذ الأخير لأنها قد تجعل نظامك أقل أمانًا.

ملف التكوين على مستوى النظام لـ sshd هو /etc/ssh/sshd_config. نظرًا لأنه مملوك للجذر، فستحتاج إلى استخدام sudo لتحريره. على سبيل المثال، لتحريره باستخدام Vim:

sudo vim /etc/ssh/sshd_config

لتمكين sshd من السماح لك بتسجيل الدخول حتى لو كان ملف Author_keys الخاص بك قابلاً للكتابة عالميًا، قم بتعيين خيار "StrictModes" على "no" في هذا الملف.

احفظه وأعد تشغيل خادم SSH:

sudo systemctl restart sshd.service

يمكنك الآن إصلاح أخطاء أذونات المفتاح العام لـ SSH

قد تواجه أخطاء تتعلق بمفاتيح SSH العامة على الأنظمة البعيدة. لحسن الحظ، كل ما عليك فعله في معظم الأوقات هو التحقق من أذونات الملف وتعيينها بحيث لا يتمكن أي شخص آخر من رؤية مفتاحك. يمكنك أيضًا استخدام ssh-agent للحصول على اتصالات أكثر موثوقية. كملاذ أخير، يمكنك جعل خادم SSH أقل صرامة.