จะเพิ่มความเร็วการเข้าสู่ระบบ SSH ได้อย่างไร?


23

จากนอกบ้านเมื่อใดก็ตามที่ฉันลงชื่อเข้าใช้เซิร์ฟเวอร์ Ubuntu โดยใช้ SSH ฉันจะใช้เวลาประมาณ 6 วินาทีในการขอรหัสผ่าน แต่เมื่อฉันลงชื่อเข้าใช้เซิร์ฟเวอร์เว็บโฮสติ้งของฉันจะใช้เวลาประมาณ 1 วินาที ฉันจะทำอย่างไรเพื่อเร่งความเร็วนี้

$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=8.04
DISTRIB_CODENAME=hardy
DISTRIB_DESCRIPTION="Ubuntu 8.04.1"
$ ssh -v
OpenSSH_4.7p1 Debian-8ubuntu1.2, OpenSSL 0.9.8g 19 Oct 2007
$ cat /proc/cpuinfo
model name      : Dual-Core AMD Opteron(tm) Processor 1210
cpu MHz         : 1000.000
cache size      : 1024 KB
$ cat /proc/meminfo
MemTotal:      2074528 kB

คำตอบ:


38

จำนวนหนึ่งเหตุผลที่ฉันได้เห็นนี้เป็นตัวเลือกการกำหนดค่าใน SSHD UseDNSตัวเลือกนี้ (เปิดใช้งานโดยค่าเริ่มต้น) ทำให้เซิร์ฟเวอร์ทำการแก้ไข DNS ในคำขอที่เข้ามา การดำเนินการที่ใช้เวลานาน ฉันเคยเห็นการเข้าสู่ระบบไปจากหนึ่งนาทีและรอการแจ้งให้รหัสผ่านภายใต้ไม่กี่วินาที หากคุณแก้ไข/etc/ssh/sshd_configบนเซิร์ฟเวอร์และเพิ่ม (หากไม่มี) ที่ด้านล่างให้UseDNS noรีสตาร์ท SSH daemon ด้วยservice ssh restartคุณควรเห็นการปรับปรุงในครั้งต่อไปที่คุณเชื่อมต่อ


6
ดีกว่าที่จะแก้ไขการกำหนดค่า DNS ของคุณ
Thorbjørn Ravn Andersen

สิ่งนี้ยอดเยี่ยมมาก !! ขอบคุณ! เวลาที่เข้าสู่ระบบไป 20-30 วินาทีน้อยกว่า 5 วินาที :)
AntonioCS

3
ประโยชน์ของการUseDNSเปิดใช้งานคืออะไร?
ændrük

ระวัง! เมื่อคุณตั้งค่าคำสั่งUserDNSหลังจากMatchคำสั่งคุณจะได้รับข้อผิดพลาด: is not allowed within a Matchบล็อกถ้าคุณรีสตาร์ท sshd คุณจะไม่สามารถ ssh ลงในเซิร์ฟเวอร์ของคุณ ฉันทำผิดพลาดและล็อคออกจากเซิร์ฟเวอร์ โปรดจำไว้เสมออย่าเพิ่มคำสั่งใด ๆ ที่ด้านล่างsshd_configหากคุณมีMatchคำสั่ง
Adriano Rosa

6

สำหรับฉันเหตุผลหมายเลข 2 (หลังจากตัวเลือก UseDNS ฝั่งเซิร์ฟเวอร์) สำหรับการเข้าสู่ระบบเซสชัน SSH แบบยาวคือความพยายามฝั่งไคลเอ็นต์ในการเชื่อมต่อโดยใช้ IPv6 (ซึ่งเห็นได้ชัดว่าไม่ได้ตั้งค่าอย่างถูกต้องบนเครือข่ายของฉัน - หรือเกือบเครือข่ายอื่น ๆ สำหรับเรื่องที่).

ดูHOWTO: เร่งความเร็วการเข้าสู่ระบบ SSHบนฟอรัม Ubuntu

"โซลูชัน" คือการเปิดใช้งาน IPv4 เท่านั้น:

1) สำหรับการร้องขอไคลเอ็นต์ SSH ที่กำหนด:

ssh -4 login@hostname

2) หรือทั่วโลกในการกำหนดค่าไคลเอ็นต์ ssh ใน/etc/ssh/ssh_config:

Host *
   AddressFamily inet

แน่นอนมันจะถูกต้องมากขึ้นในการตั้งค่า IPv6 บนเครือข่ายของคุณอย่างถูกต้อง แต่ใครมีเวลา :)


3

ลองเพิ่มตัวเลือกถัดไปด้วยคำสั่ง ssh ของคุณ:

-o "PreferredAuthentications=password"

(สิ่งนี้จะป้องกันไม่ให้ ssh เจรจาวิธีการรับรองความถูกต้องอื่น ๆ และเร่งความเร็วรหัสผ่าน promtp!)


2
ทำไมต้องใช้รหัสผ่านเลย? ทำไมไม่ใช้กุญแจ?
TJ Ellis

1
ง่าย: เพราะคุณอาจไม่ได้รับอนุญาตให้ใช้ปุ่ม! (sshd ไม่ได้กำหนดค่าให้ใช้สิทธิ์ผู้ใช้ไฟล์ที่ไม่ดีเป็นต้น 9
perseo22

2

นอกจากนี้ให้พิมพ์สิ่งนี้บนเครื่องระยะไกล (ในฐานะผู้ใช้ที่คุณจะเข้าสู่ระบบในฐานะ) เพื่อระงับข้อความ MOTD:

touch ~/.hushlogin

ไม่ได้สร้างความแตกต่างมากเท่ากับการปิดเครื่องUseDNSแต่มันอาจช่วยในการเชื่อมต่อที่ช้าลง


1
-1: MOTD จะแสดงหลังจากลงชื่อเข้าใช้สำเร็จเท่านั้น นี่จะไม่ทำให้พรอมต์รหัสผ่านปรากฏขึ้นเร็วขึ้น
Asa Ayers

2
จริง แต่ก็ยังเป็นความคิดเห็นที่มีประโยชน์
sebastian_k

2

ในขณะที่คุณใช้งาน Ubuntu รุ่นเก่า ๆ มันอาจจะเป็นจุดบกพร่องนี้: https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/300151

การรีสตาร์ท dbus ( /etc/init.d/dbus restart) อาจช่วยได้


ฉันมีกล่อง 10.04 ที่อัพเกรดจาก 9.04 และ 9.10 การรีสตาร์ท dbus ลดลงtime ssh remoteServer dateจาก 8s เป็น 0.5s
djeikyb
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.