سؤال لماذا يكون تسجيل الدخول إلى SSH بطيئًا؟


أرى تأخيرات في دخول SSH. على وجه التحديد ، هناك 2 البقع حيث أرى مجموعة من التأخير الفوري إلى متعدد ثانية.

  1. بين إصدار الأمر ssh والحصول على مطالبة تسجيل الدخول و
  2. بين إدخال عبارة المرور والحصول على الحمل shell

الآن ، على وجه التحديد أنا أبحث في تفاصيل ssh هنا فقط. من الواضح أن تأخر الشبكة وسرعة الأجهزة وأنظمة التشغيل والمخططات المعقدة لتسجيل الدخول وما إلى ذلك قد تتسبب في حدوث تأخيرات. للسياق أنا ssh إلى عدد كبير من توزيعات linux وبعض مضيفات Solaris باستخدام Ubuntu و CentOS و MacOS X في الغالب كنظمتي العميل. تقريبا كل الوقت ، فإن تهيئة خادم ssh لم تتغير من الإعدادات الافتراضية لنظام التشغيل.

ما هي تهيئات خادم ssh التي ينبغي عليّ الاهتمام بها؟ هل هناك معلمات OS / kernel يمكن ضبطها؟ حيل شل الدخول؟ إلخ؟


86
2017-07-22 07:02


الأصل


أنت تستخدم الحسابات المحلية؟ - في بعض الأحيان أجد مصادقة بام يمكن إضافة تأخير لتسجيل الدخول مع سه - Sirex
الحسابات المحلية عادة. في بعض الأحيان شيكل. - Peter Lyons


الأجوبة:


حاول الإعداد UseDNS إلى no في /etc/sshd_config أو /etc/ssh/sshd_config.


109
2017-07-22 08:38



+1 هو أكثر أسباب التأخير شيوعًا عند تسجيل الدخول إلى ssh - matthias krull
"ملاحظة سولاريس 11: لقد جربت UseDNS بدون أي إعداد على Solaris 11 وأفسدت بدء الخدمة. ليس بالضبط استجابة ودية من الخدمة. YMMV مع المتغيرات Nix * الأخرى ولكن يبدو أن UseDNS لا يمكن أن يكون خيارًا صالحًا في Solaris 11 ". - تعليق كيث هوفمان - Sathya♦
كنت متشككا وأنا استخدم لتسجيل الدخول باستخدام عنوان IP (الوطن LAN) ، ولكن هذا الحل حل مشكلتي. بالنسبة إلى Google ، على الرغم من أنه كان يحدث بعد ذلك بقليل ، لم يكن لهذا التأخير علاقة "بالمفتاح: /home/mylogin/.ssh/id_ecdsa ((لا شيء))" (عند تشغيل ssh -vvv). - Skippy le Grand Gourou
+1 لجعلها صريحة ، الملف /etc/ssh/sshd_config ! كنت أضيف في /etc/sshd_config ورؤية أي اختلاف على الإطلاق !! - vyom
SkippyleGrandGourou: كانت بعض إصدارات Solaris تستخدم OpenSSH المعدل ، الذي يسمى SunSSH ، والذي كان يعاني من بعض حالات عدم التوافق المزعجة. يضيف Solaris 11.3 مرة أخرى OpenSSH وستتم إزالة SunSSH في النهاية ... - Gert van den Berg


عندما ركضت ssh -vvv على خادم مع أداء بطيء مماثل رأيت تعليق هنا:

debug1: Next authentication method: gssapi-with-mic

عن طريق التحرير /etc/ssh/ssh_config والتعليق على أن طريقة التوثيق حصلت على أداء تسجيل الدخول إلى وضعها الطبيعي. وهنا ما لدي في بلدي /etc/ssh/ssh_config على الخادم:

GSSAPIAuthentication no

يمكنك تعيين ذلك على مستوى العالم على الخادم ، لذلك لا يقبل GSSAPI للمصادقة. فقط اضف GSSAPIAuthentication no إلى /etc/ssh/sshd_config على الخادم وإعادة تشغيل الخدمة.


34
2017-09-22 17:42



لقد وجدت أن هذا هو الحال مع خوادم RHEL5 الخاصة بي بعد تكوين عمليات تسجيل الدخول winbind / ad. - Chad
عملت لي شكرا +1. - racic
هذا يعمل بالنسبة لي على خادم أوبونتو 14.04. - Penghe Geng
بالنسبة لـ CentOS 7 ، يجب ضبط كليهما GSSAPIAuthentication no و UseDNS no في /etc/ssh/sshd_config ملف. - Sunry


بالنسبة لي ، كان الجاني هو قرار IPv6 ، كان الوقت خارج. (إعداد DNS غير صحيح على مزود المضيف ، أعتقد.) اكتشفت ذلك عن طريق القيام به ssh -v، والتي أظهرت أي خطوة كانت معلقة.

الحل هو ssh مع ال -4 اختيار:

ssh -4 me@myserver.com


14
2017-08-14 00:50



أظن أن المزيد منا سيشاهد هذا مع مرور الوقت والأشياء (بشكل سيء و) يستوعب ببطء IPV6. شكر! - sage
... وهذه الإجابة غير مفيدة بشكل خاص دون رسالة التصحيح التي تؤكد أن هذه هي المشكلة. - E.P.
من تجربتي أن هذه مشكلة شائعة جدًا عندما يستمع SSH على واجهات Dualstack وأول شيء أتحقق منه عندما أستطيع تسجيل الدخول ، ولكن الأمر يستغرق وقتًا أطول من المتوقع. - Mogget
هل هناك أي فرصة لإصلاح IPv6 بدلاً من التخلف عن استخدام IPv4؟ - msrd0


مع systemd ، قد توقف تسجيل الدخول على اتصال dbus مع تسجيل الدخول بعد بعض الترقيات ، فأنت بحاجة إلى إعادة تشغيل تسجيل الدخول

systemctl restart systemd-logind

رأى ذلك على debian 8 ، لينكس القوس ، وعلى قائمة suse


11
2018-05-21 09:41



يا نجاح باهر ، الآن كان هذا الجاني! اشكرك كثيرا! - mahatmanich
نفس الشيء بالنسبة لي. استغرق الأمر بعض الوقت لاستبعاد جميع مشكلات DNS و SSH المحتملة أولاً. ملاحظة: إذا كانت المشكلة تنطبق على بطء sudo أيضًا ، فجرّب هذا أولاً. - Michael


يمكنك دائما أن تبدأ ssh مع ال -v الخيار الذي يعرض ما يجري في الوقت الحالي.

$ ssh -v you@host

مع المعلومات التي قدمتها ، يمكنني فقط اقتراح بعض تكوينات جانب العميل:

  • نظرًا لأنك تكتب أنك تدخل كلمات المرور يدويًا ، فإنني أقترح عليك استخدام التحقق من صحة المفتاح العام إن أمكن. هذا يزيل لك بمثابة اختناق السرعة.

  • يمكنك أيضًا تعطيل إعادة التوجيه X باستخدام -x وإعادة مصادقة مع -a (قد تكون هذه بالفعل معطلة افتراضيا). يمكن أن يعطيك تعطيل X-forwarding بشكل خاص تحسينًا كبيرًا للسرعة إذا كان العميل يحتاج إلى بدء تشغيل خادم X لـ ssh الأمر (على سبيل المثال ، تحت OS X).

كل شيء آخر يعتمد حقا على أنواع التأخير التي تواجهها أين ومتى.


9
2017-07-22 08:28



تلميح جيد حول الإسهاب ، يمكنك أيضًا زيادة ذلك من خلال وجود المزيد من v. ما يصل إلى 3 IRC. - vtest


فيما يتعلق بالنقطة 2. وهنا إجابة لا تتطلب تعديل الخادم ولا تتطلب امتيازات الجذر / الإدارية.

تحتاج إلى تعديل ملف "user ssh_config" الخاص بك وهو:

vi $HOME/.ssh/config

(ملاحظة: يجب عليك إنشاء الدليل $ HOME / .ssh إذا لم يكن موجودًا)

و أضف:

Host *
  GSSAPIAuthentication no
  GSSAPIDelegateCredentials yes

يمكنك القيام بذلك على أساس كل مضيف إذا لزم الأمر :) على سبيل المثال:

Host linux-srv
  HostName 192.158.1.1
  GSSAPIAuthentication no
  GSSAPIDelegateCredentials yes

تأكد من مطابقة عنوان IP لخادمك IP. ميزة واحدة رائعة هي أن ssh الآن سيوفر autocomplete لهذا الخادم. لذلك يمكنك الكتابة ssh lin+ Tab ويجب إتمامه تلقائيًا ssh linux-srv.


7
2018-06-29 07:41





التحقق من /etc/resolv.conf على الخادم للتأكد من أن ملقم DNS ، المسرود في هذا الملف ، يعمل بشكل جيد ، وحذف أي DNS غير عامل.

في بعض الأحيان أنها مفيدة للغاية.


4
2018-06-08 07:57





إلى جانب مشكلات DNS التي سبق ذكرها ، إذا كنت تستخدم نظامًا مزودًا بالعديد من NFS ، فيمكن أن يكون هناك تأخير بين كلمة المرور والمطالبة quota الأمر بالتحقق من استخدامك / حصصك على جميع أنظمة الملفات غير المثبتة مع noquota. على أنظمة Solaris ، يمكنك رؤية ذلك في الوضع الافتراضي /etc/profile وتخطيها عن طريق تشغيل touch $HOME/.hushlogin  .


2
2017-07-22 14:24





عمل جيد.

# uname -a
SunOS oi-san-01 5.11 oi_151a3 i86pc i386 i86pc Solaris
# ssh -V
Sun_SSH_1.5, SSH protocols 1.5/2.0, OpenSSL 0x009080ff
# echo "GSSAPIAuthentication no" >> /etc/ssh/sshd_config
# echo "LookupClientHostnames no" >> /etc/ssh/sshd_config
# svcadm restart ssh

UseDNS لا لا تعمل مع OpenIndiana!

قراءة "man sshd_config" لجميع الخيارات

"LookupClientHostnames no" إذا لم يتمكن الخادم الخاص بك من حل المشكلة


1
2018-04-25 13:37





إذا لم يعمل أي من الإجابات المذكورة أعلاه وكنت تواجه مشاكل بحث عكس نظام أسماء النطاقات ، يمكنك أيضًا التحقق من ذلك nscd (اسم خدمة خبيئة مخبأ) يتم تثبيته وتشغيله.

إذا كانت هذه هي المشكلة ، فذلك لأنك لا تملك ذاكرة تخزين مؤقت dns ، وفي كل مرة تقوم فيها بالاستعلام عن اسم مضيف غير موجود على hostfile ، تقوم بإرسال السؤال إلى خادم الاسم الخاص بك بدلاً من البحث في ذاكرة التخزين المؤقت

لقد جربت جميع الخيارات المذكورة أعلاه وكان التغيير الوحيد الذي نجح هو البداية nscd.

يجب أيضًا التحقق من ترتيب لجعل دقة استعلام DNS في /etc/nsswitch.conf لاستخدام ملف المضيفين أولاً.


1
2018-05-02 23:01