سؤال خطأ "المالك أو الأذونات السيئة" باستخدام sg.exe الخاص بـ Cygwin


أحاول استخدام ssh.exe في Cygwin (في Windows 7). لقد قمت بنسخ config ملف في c:\cygwin\home\[USERNAME]\.ssh. عندما أركض ssh (فمثلا، ssh -vT git@bitbucket.org) أحصل على الخطأ التالية:

OpenSSH_5.9p1 ، OpenSSL 0.9.8r 8 فبراير 2011   مالك أو أذونات سيئة على /home/[USERNAME]/.ssh/config

كيف يمكنني الحصول عليها ssh لقراءة ملف التكوين الخاص بي؟


29
2017-10-20 11:02


الأصل




الأجوبة:


بعد القيام بما هو مذكور أعلاه ، حصلت على هذا دائمًا:

total 22
drwxrwxr-x+ 1 jl None    0 Sep  9 18:44 .
drwxrwxr-x+ 1 jl None    0 Sep  9 18:44 ..
-rw-rw----  1 jl None  129 Jul  1 14:30 config

والخطأ على .ssh/config. لذلك أنا أركض chown على ال .ssh المجلد و chmod مرة أخرى مثل هذا:

> chown -R [USERNAME]:users .ssh/

وثم:

> chmod -R 600 .ssh/

وأخيراً حصلت على العمل:

total 29
drwxrwxr-x+ 1 jl None     0 Sep  9 18:44 .
drwxrwxrwt+ 1 jl None     0 Sep  9 18:44 ..
drw-------+ 1 jl Users    0 Sep  9 18:44 .ssh

تحرير (لـ bash على Windows10) 

عندما تحصل على الخطأ ..

أخفق إضافة المضيف إلى قائمة المضيفات المعروفة (/PATH_TO_HOME/USERNAME/.ssh/known_hosts).

تأكد من أن known_hosts قابل للكتابة

دولار chmod 755

ملاحظة: أعتقد أنك تحتاج فقط إلى تعيين 600 لمفتاحك الخاص

ثم حاول ssh.

عندما تحصل..

تمت إضافة "HOST_IP" (RSA) نهائيًا إلى قائمة المضيفين المعروفين.

يمكنك استبدال وضع 600

$ chmod 600 known_hosts

ملاحظة: أعتقد أن هذا هو خلل على ويندوز 8.


45
2017-09-10 14:03



لم تنجح الإجابة المقبولة بالنسبة لي ، ولكن هذا لم يحدث. شكر! - Achal Dave
أيضا ، هذا هو علة غريبة جدا. على جهاز الكمبيوتر الخاص بي (W8.1) ، يؤدي تحرير ملف .ssh / config في Vim دائمًا إلى حدوث هذا الخطأ. إنه أمر مزعج للغاية ، حيث يتطلب كل تغيير في تهيئة ssh الخاص بي تشغيل هذه الأوامر. - Achal Dave
ومجرد إضافة إلى الغرابة ، إذا كنت تستخدم إصدارًا غير إنجليزي من Windows ، فتأكد من استخدام ترجمة لغة "المستخدمين" عند إصدار هذا الأمر. على سبيل المثال باللغة الهولندية يصبح "chown -R: Gebruikers .ssh" - Alexander Kellett
بالنسبة لي ، هذا العمل: chown -R m0j0: Users .ssh && chmod -R go-rwx .ssh - m0j0
بفضل هذا عملت لي أيضا ، باللغة الألمانية تحتاج إلى استخدام chown -R [Username]:Benutzer .ssh/ - con


يتم نسخ هذه الإجابة حرفيا من https://superuser.com/a/875934/82032. هذه هي الإجابة الوحيدة التي عملت بالنسبة لي بعد ترقية cygwin الأخيرة.

لا تنس قواعد ACL

لا شيء يعمل لي حتى جردت ملف قوائم ACL وإعادة تعيين الأذونات.

#remove ACLs
setfacl -b ~/.ssh/config

#reset permissions
chmod 0600 ~/.ssh/config

يمكنك استخدام getfacl لعرض قائمة التحكم بالوصول (ACL) الحالية على ملف.

getfacl ~/.ssh/config

قبل إزالة ACLs (المكسور):

# owner: Administrators
# group: None
user::rw-
group::---
group:Authenticated Users:rwx
group:SYSTEM:rwx
mask:rwx
other:---

بعد العمل)

# file: config
# owner: myusername
# group: None
user::rw-
group::---
other:---

19
2018-02-18 16:40



هذا ما كان علي فعله بعد ترقية cygwin - blockloop
هذا يتطلب cygwin 1.7.34-6 - ClintM
هذا ما نجح بالنسبة لي! - Ashutosh Jindal


تحقق من أذونات config ملف باستخدام Cygwin ls أمر:

> c:\cygwin\bin\ls.exe -la c:\cygwin\home\[USERNAME]\.ssh

من المحتمل أن يكون شيء من هذا القبيل:

total 5
drwxrwxrwt+ 1 Administrators None  0 Oct 20 17:02 .
drwxr-xr-x+ 1 [USERNAME]     None  0 Oct 19 08:15 ..
-rw-------  1 Administrators None 57 Oct 20 16:58 config

يجب أن ينتمي ملف التهيئة إلى [USERNAME]. جرب هذا:

> c:\cygwin\bin\chown.exe [USERNAME] c:\cygwin\home\[USERNAME]\.ssh\config

ls -la يجب أن تظهر الآن المالك الصحيح. إذا لم ينجح ذلك ، فحاول إعادة ضبط الوضع (الأذونات):

> c:\cygwin\bin\chmod.exe 700 c:\cygwin\home\[USERNAME]\.ssh\config

9
2017-10-20 11:10





ل UNIX و OSX

بكل بساطة:

chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/

للنوافذ

إذا كان الملف عبارة عن ارتباط رمزي لنظام التشغيل Windows (NTFS) ، فلن يعمل ما سبق. تحتاج إلى جعله ملف عادي. أنا لست متأكدا لماذا.

إذا لم يكن لديك opensh أو cygwin ، استخدم chocolatey لتثبيته بسهولة.

choco install cyg-get

افتح Cygwin الطرفية التي تم تثبيتها مع الشوكولاتة وتشغيلها (لاحظ ذلك ssh-keygen يخلق مفاتيح جديدة):

cyg-get install openssh
ssh-keygen
cd ~/.ssh && explorer.exe .

تحقق من وجود المفاتيح (أو استبدلها بالمفاتيح التي تريدها) ، ثم في shell Cygwin:

chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/

أو للحالة النادرة التي تستخدمها (ولدت المفاتيح من) الشوكولاتة SSH صفقة:

chown -R $USER:users  /cygdrive/c/Users/$USER/.ssh
chmod -R 600 /cygdrive/c/Users/$USER/.ssh

9
2017-09-25 13:19



هذا هو عادة بالنسبة لي ، لأن المجموعة عادة ما تكون خاطئة على الملفات. - Alan Krueger


ملاحظة مهمة إذا كان نظام التشغيل Windows الخاص بك ليس باللغة الإنجليزية الأمريكية: اسم مجموعة "المستخدمين" يعتمد على الإعدادات المحلية. على سبيل المثال ، إذا كان Windows الخاص بك باللغة الإسبانية ، فسيتعين عليك تغيير ملكية الملفات باستخدام chown $USER:Usuarios *


3
2018-01-11 04:33





لم يعمل أي من هذه (chmod / chown / icacls / setacl / copyacls / explorer> security) على my cygwin64 / win7 / admin ، وأخيراً يعمل هذا مع cygwin64/ssh -F ~/.ssh/config الحلول الأخرى هي استخدام ssh القديمة في cygwin32 أو ssh في git للنوافذ.


1
2018-03-28 07:17



عن طريق -F سوف تحل المشكلة config، ولكن لن يحل أذونات للمفاتيح الخاصة. - Jari Turkia


بالنسبة لأولئك الذين يستخدمون noacl في الطريق مع ~/.ssh دير حل بسيط هو إنشاء رابط رمزي NTFS الأصلي:

cmd# mklink c:\home\.ssh c:\opt\cygwin\home\misc\.ssh
symbolic link created for c:\home\.ssh <<===>> c:\opt\cygwin\home\misc\.ssh

مع noacl لا توجد وسيلة لتعيين أذونات أخرى ثم rwxr-xr-x أو rw-r--r--. مثل / التسلسل الهرمي يجب أن يكون بدون noacl (أو ينبغي أن يكون مع acl) يمكنك إنشاء دليل هنا والإشارة إليه أماكن إشكالية لتطبيقات Cygwin.


0
2017-08-14 00:22



بالنظر إلى هذا دليل ، فإن الحل البسيط سيكون باستخدام وصلة ، لأن ذلك لا يتطلب الامتيازات المطلوبة لإعداد رابط رمزي. هذا سيكون mklink /j ثم أو junction أداة من جناح Sysinternals. - 0xC0000022L