it-swarm.dev

فشل في إضافة المضيف إلى قائمة معرفة المضيفين

Mac OSX Lion 10.7.

في محاولة للالتفاف على عناصر البيئة الغريبة (لم يكن homebrew يقوم بتثبيت wget ، وكان لدي كل أنواع الكتل والأخطاء الغريبة) ، قمت بإلغاء تثبيت zschrc والبيرة ومجموعة من الأشياء الأخرى ، ثم قمت بتثبيت الأسماك Shell.

الآن ، كلما حاولت الضغط/السحب من/إلى جيثب ، أتلقى هذا الخطأ:

The authenticity of Host 'github.com (204.232.175.90)' can't be established.
RSA key fingerprint is <string of colon-separated chars that I should probs keep private>.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the Host to the list of known hosts (/Users/sasha/.ssh/known_hosts).

لذا حاولت التحقق من أذونات مجلد ~./ssh ، وحصلت على هذا الأمر ، وهو ما يبدو جيدًا بالنسبة لي:

-rw-r--r--  1 sasha  staff    97B Jul  9 22:56 config
-rw-------  1 sasha  staff   1.7K May 16  2012 id_rsa
-rw-r--r--  1 sasha  staff   403B May 16  2012 id_rsa.pub
drwx------  5 sasha  staff   170B Jul 15 09:56 known_hosts

كل ما هو في known_hosts هو ملف pem استخدمته لـ ssh'ing (أيضًا مع "الأصالة ..." موجه) إلى مثيل Amazon ec2 ، على الرغم من أنني حاولت نسخ id_rsa و id_rsa.pub هناك عندما تصبح الأمور يائسة.

اي فكره تعتمد عليها؟ أرغب في إصلاح ذلك حتى لا يتم مطالبتي في جميع الأوقات التي أقوم فيها بالدفع/السحب.

[~ # ~] عدل [~ # ~] تابعت هذه التعليمات بنجاح منذ فترة ، لذا لديّ مفاتيح ssh على Github ، ويتم التعرف عليها ، بحيث عندما أقوم بتشغيل ssh -T [email protected] ، أحصل

Hi sashafklein! You've successfully authenticated, but GitHub does not provide Shell access.

يبدو أن جهاز الكمبيوتر الخاص بي محلي غير راضٍ تمامًا عن وضعي ssh.

47
Sasha

ألا يجب أن يكون ملف مضيف معروف ، وليس دليلًا؟

إذا لم تكن هذه هي المشكلة ، فربما هذه الصفحة على جيثب قد تكون مفيدة. حاول استخدام SSH مع علامة -v أو -vv لمشاهدة رسائل الخطأ المطوّلة. قد يعطيك فكرة أفضل عن الفشل.

18
CXJ

في حالتك المحددة ، لديك known_hosts هو مجلد ، لذلك تحتاج إلى إزالته أولاً.

بالنسبة للأشخاص الآخرين الذين يواجهون مشكلة مماثلة ، يرجى التحقق من الإذن الصحيح لـ ~/ssh/known_hosts لأنها قد تكون مملوكة من قبل مستخدم مختلف (مثل الجذر). لذلك قد تحاول تشغيل:

Sudo chown -v $USER ~/.ssh/known_hosts

لإصلاحها.

107
kenorb

للاعبين على أوبونتو ، إذا حصلت على هذا الخطأ:

أخفق إضافة المضيف إلى قائمة المضيفين المعروفين

ثم ببساطة احذف known_hosts ملف ، وإعادة تشغيل ssh الخاص بك. سيؤدي هذا إلى تجديد known_Host الملف ذو الأذونات المناسبة ، وأضف المضيف البعيد الذي تحاول الدخول إليه إلى هذا الملف.

25
Kingz

أعتقد أنه تم حل سؤال البروتوكول الاختياري عن طريق حذف ~/.ssh/known_hosts (الذي كان مجلدًا ، وليس ملفًا). لكن بالنسبة للأشخاص الآخرين الذين قد يواجهون هذه المشكلة ، لاحظت أن أحد الخوادم لديه أذونات غريبة (400):

-r--------. 1 user user 396 Jan 7 11:12 /home/user/.ssh/known_hosts

لذلك أنا حلها عن طريق إضافة مالك/المستخدم PLUS الكتابة.

chmod u+w ~/.ssh/known_hosts

وهكذا. يحتاج ملف ~/.ssh/known_hosts إلى ملف ثابت ، ويجب أن تكون ملكًا لك ، ويجب أن تكون قادرًا على قراءته والكتابة إليه.

يمكنك دائمًا إعلان إفلاس معروفين ، وحذفه ، ومتابعة القيام بالأمور كالمعتاد ، وسيؤدي الاتصال بالأشياء (git/ssh) إلى إعادة إنشاء مضيفات معروفة جديدة يجب أن تعمل بشكل جيد.

18
Peter Dietz

هذا هو الحل الذي احتاجه.

Sudo chmod 700 ~/.ssh/
Sudo chmod 600 ~/.ssh/*
Sudo chown -R ${USER} ~/.ssh/
Sudo chgrp -R ${USER} ~/.ssh/
8
Stoney Eagle

حسنا الأذونات المثالية تبدو هكذا
للدليل ssh (يمكنك الحصول على هذا عن طريق كتابة ls -ld ~/.ssh/)
drwx------ 2 oroborus oroborus 4096 Nov 28 12:05 /home/oroborus/.ssh/

d تعني الدليل ، يعني rwx أن المستخدم oroborus قد قرأ إذن الكتابة والتنفيذ. هنا oroborus هو اسم جهاز الكمبيوتر الخاص بي ، يمكنك العثور على اسمك من خلال تكرار USER $. oroborus الثاني هو في الواقع المجموعة. يمكنك قراءة المزيد حول ماذا يعني كل حقل هنا . من المهم للغاية تعلم هذا لأنه إذا كنت تعمل على أوبونتو/osx أو أي فرص توزيعة Linux ، فسوف تواجه ذلك مرة أخرى.

الآن لجعل إذنك يبدو مثل هذا ، تحتاج إلى كتابة
Sudo chmod 700 ~/.ssh

7 في ثنائي هو 111 مما يعني قراءة 1 الكتابة 1 وتنفيذ 1 ، يمكنك فك شفرة 6 عن طريق منطق مماثل يعني فقط أذونات القراءة والكتابة

لقد منحت المستخدم قراءة أذونات الكتابة والتنفيذ. تأكد من أن أذونات الملف تبدو هكذا.

total 20
-rw------- 1 oroborus oroborus  418 Nov  8  2014 authorized_keys
-rw------- 1 oroborus oroborus   34 Oct 19 14:25 config
-rw------- 1 oroborus oroborus 1679 Nov 15  2015 id_rsa
-rw------- 1 oroborus oroborus  418 Nov 15  2015 id_rsa.pub
-rw-r--r-- 1 oroborus root      222 Nov 28 12:12 known_hosts

لقد أعطيت هنا إذن القراءة والكتابة للمستخدم الخاص بك هنا لجميع الملفات. يمكنك رؤية هذا عن طريق كتابة ls -l ~/.ssh/

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

7
Saras Arya

عملت هذه القيادة بالنسبة لي ،

Sudo chown -v $USER ~/.ssh/known_hosts

كما ذكر @ kenorb.

حدث الخطأ بسبب أذونات مقطوعة للمستخدم الحالي.

7
Ganesh prasad

هذا ما حدث لي ببساطة بسبب أذونات مكسورة. لم يكن لدى المستخدم حق الوصول للقراءة والكتابة إلى هذا الملف. إصلاح أذونات إصلاح المشكلة

2
Andrea Gherardi

بالنسبة لي ، أنا فقط أفعل هذا:

rm -rf ~/.ssh/known_hosts

ثم :

أنا فقط ssh إلى المضيف الهدف وجميع سيكون على ما يرام. هذا فقط إذا كنت لا تعرف ، ما إذن والمالك الافتراضي لملف "known_hosts".

1
Raigor

لقد أنشأت مفتاح "ssh" مرة أخرى وأضفته إلى حساب git الخاص بي. هذا عملت لي.

الرجاء العثور على الأوامر التالية لإنشاء "مفتاح ssh":

$ ssh-keygen -t rsa -b 4096 -C "[email protected]"

-> يؤدي هذا إلى إنشاء مفتاح ssh جديد ، باستخدام البريد الإلكتروني المقدم كتسمية.

Generating public/private rsa key pair.

-> عندما يُطلب منك "إدخال ملف لحفظ المفتاح فيه" ، اضغط على Enter. هذا يقبل موقع الملف الافتراضي.

Enter a file in which to save the key (/home/you/.ssh/id_rsa): [Press enter]

-> في موجه ، اكتب عبارة مرور آمنة. لمزيد من المعلومات ، راجع "العمل باستخدام عبارات مرور مفتاح SSH"

Enter passphrase (empty for no passphrase): [Type a passphrase]

Enter same passphrase again: [Type passphrase again]

-> يتم إنشاء المفتاح الخاص بك ، لنسخ المفتاح:

$ Sudo cat /root/.ssh/id_rsa-pub

تتمنى ان يعمل!

1
SH'

لكل مهتم ، عمل هذا بالنسبة لي في أوبونتو:

  1. انتقل إلى . سه الدليل.

    $ cd ~/.ssh
    
  2. قم بإزالة known_hosts الملف.

    $ rm known_hosts
    
  3. إعادة دفع التغييرات بوابة الخاص بك.

0
Yves

عملت هذه القيادة بالنسبة لي ،

Sudo chmod +x ~/.ssh/known_hosts 
0
Nishu KC

تحقق أذونات الملف ، إذا كان من الجيد التحقق من الدلائل الأصل

اضطررت لتصحيح

/home/sravindr/.ssh الأذونات التي عملت بالنسبة لي

0
Sabarish