it-swarm.asia

Windows SSH: أذونات "المفتاح الخاص" مفتوحة للغاية

لقد قمت بتثبيت OpenSSH 7.6 في نظام التشغيل Windows 7 لأغراض الاختبار. يعمل عميل وخادم SSH على ما يرام حتى حاولت الوصول إلى أحد صناديق AWS EC2 الخاصة بي من هذه النوافذ.

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

ماذا عن النوافذ؟

يتم نسخ private-key.ppm مباشرة من AWS وأعتقد أن الإذن أيضًا.

C:\>ssh -V
OpenSSH_7.6p1, LibreSSL 2.5.3

C:\>ver

Microsoft Windows [Version 6.1.7601]

C:\>


C:\>ssh [email protected] -i private-key.ppk
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'private-key.ppk' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "private-key.ppk": bad permissions
[email protected]: Permission denied (publickey).

C:\>
C:\>
C:\>ssh [email protected] -i private-key.ppm
Warning: Identity file private-key.ppm not accessible: No such file or directory.
[email protected]: Permission denied (publickey).

C:\>
50
Sabrina

يمكنك تحديد موقع الملف في مستكشف Windows ، وانقر بزر الماوس الأيمن فوقه ثم حدد "خصائص". انتقل إلى علامة التبويب "الأمان" وانقر فوق "خيارات متقدمة".

تغيير المالك لك ، وتعطيل الميراث وحذف جميع الأذونات. ثم امنح نفسك "تحكم كامل" واحفظ الأذونات. الآن SSH لن يشكو من إذن الملف مفتوحة للغاية بعد الآن.

يجب أن ينتهي الأمر بالشكل التالي:

 enter image description here

72
iBug

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

  • واجهة المستخدم الرسومية:
    • [File] Properties - Security - Advanced
      1. اضبط المالك لمستخدم المفتاح
      2. إزالة جميع المستخدمين والمجموعات والخدمات ، باستثناء مستخدم المفتاح ، ضمن إدخالات الأذونات
      3. تعيين مستخدم المفتاح إلى التحكم الكامل


  • CLI:

    :: Set Variable ::
    set key="C:\Path\to\key"
    
    :: Remove Inheritance ::
    cmd /c icacls %key% /c /t /inheritance:d
    
    :: Set Ownership to Owner ::
    cmd /c icacls %key% /c /t /grant %username%:F
    
    :: Remove All Users, except for Owner ::
    cmd /c icacls %key%  /c /t /remove Administrator BUILTIN\Administrators BUILTIN Everyone System Users
    
    :: Verify ::
    cmd /c icacls %key%
    
10
JW0914

بالإضافة إلى الإجابة المقدمة من ibug. منذ أن كنت أستخدم نظام أوبونتو داخل النوافذ لتشغيل الأمر ssh. لا يزال لا يعمل. لذلك أنا فعلت

Sudo ssh ...

ثم عملت

5
Parv Sharma

واجهت نفس المشكلة ، ويبدو أنها مرتبطة بإصدار SSH الذي تقوم بتشغيله.

إذا كنت اكتب

where ssh

انا حصلت...

C:\Windows\System32\OpenSSH\ssh.exe
C:\Program Files\Git\usr\bin\ssh.exe

عندما أقوم بتشغيل ssh -V في كلا الموقعين ، أحصل عليه

OpenSSH_7.5p1, without OpenSSL
OpenSSH_7.3p1, OpenSSL 1.0.2k  26 Jan 2017

...على التوالي

لذلك ، عندما أقوم بتشغيل ssh من دليل git/bin ، فإنه يعمل بشكل جيد ولا يشكو من الأذونات ، لكن مع تشغيل سطر الأوامر نفسه ، باستخدام التثبيت السابق لـ SSH ، فإنه يعود بهذا.

Load key "t:\\mykeys\\rich-private.ppk": invalid format
[email protected]: Permission denied (publickey).

فرع فلسطين. أذونات الملف هي مجرد وصول كامل لنفسي ، ولا شيء غير ذلك.

4
Rich S

تحتاج jsut 2 الأشياء:

1) تعطيل الميراث  enter image description here

2) تحويل الأذونات الموروثة إلى أذونات صريحة  enter image description here

3) إزالة مجموعة المستخدمين  enter image description here

4) سينتهي بك الأمر إلى عدم تمكن المستخدمين من الوصول إلى الملفات الخاصة ، وهذا ينبغي أن يكون كافياً لإضافة id_rsa.  enter image description here

3
Artur Mustafin