SSH ทำงานช้าเพื่อทำการเชื่อมต่อ [ทำซ้ำ]


25

ฉันเพิ่งติดตั้ง Ubuntu 11.10 และเมื่อใดก็ตามที่ฉันพยายามที่จะ SSH ลงในเซิร์ฟเวอร์ของฉันมันช้ามาก ก่อนที่จะแสดงพรอมต์รหัสผ่านอาจใช้เวลาระหว่าง 40 วินาทีถึง 60 วินาที

ฉันใช้:

ssh myuser@myserver.com

เมื่อฉันเข้าสู่ระบบทุกอย่างเรียบร้อยดีและทำงานได้อย่างรวดเร็ว

เหตุใดจึงใช้เวลานานและฉันจะแก้ไขได้อย่างไร มีตัวเลือกใดบ้างในคำสั่ง SSH ที่ฉันสามารถใช้ได้หรือไม่?

คำตอบ:


44

สิ่งนี้ช้าเพราะ OpenSSH daemon ใช้ DNS เพื่อเรียกใช้การค้นหาแบบย้อนกลับบนชื่อโฮสต์ของไคลเอ็นต์เพื่อให้แน่ใจว่าถูกต้อง

sudo vi /etc/ssh/ssh_config

ใส่ความคิดเห็นในบรรทัดต่อไปนี้

#GSSAPIAuthentication yes
#GSSAPIDelegateCredentials no

หรือ

เพิ่มสิ่งนี้:

UseDNS no

6
มีไฟล์ sshd_config สำหรับฝั่งเซิร์ฟเวอร์และ ssh_config สำหรับฝั่งไคลเอ็นต์ การตั้งค่าตัวเลือกเหล่านี้บนไคลเอนต์และเซิร์ฟเวอร์ในไฟล์ ssh_config ไม่ได้ช่วยฉัน หลังจากตั้งค่าGSSAPIAuthentication noและGSSAPIDelegateCredentials yesเพิ่มUseDNS noในไฟล์ sshd_config ของเซิร์ฟเวอร์แล้วจะทำให้การเชื่อมต่อเร็วขึ้นสำหรับฉัน
metakermit

1
ไม่มีความหมายด้านความปลอดภัยในการทำเช่นนี้?
TheStoryCoder

@ TheStoryCoder คำถามที่ดีไม่ต้องตรวจสอบอีกครั้งคุณเรียกความอยากรู้ของฉันตอนนี้ ...
Book Of Zeus

1
หลังจากเพิ่มUseDNS noฉันได้Bad configuration option: usednsเมื่อฉันพยายาม ssh เข้าสู่ระบบเซิร์ฟเวอร์อื่น
Casper

1
ลองตั้งค่าUseDNSที่จะnoในหรือ/etc/sshd_config /etc/ssh/sshd_configไม่/etc/ssh_config!
Yu Jiaao

13

นี่เป็นเพียงส่วนเสริมของคำตอบของ Book Of Zeus ในกรณีที่คุณไม่มีสิทธิ์เข้าถึงรูท (sudo) คุณยังสามารถกำหนดค่าได้

คุณต้องแก้ไขไฟล์ "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 จะให้การเติมข้อความอัตโนมัติสำหรับเซิร์ฟเวอร์นี้ ดังนั้นคุณจึงสามารถพิมพ์ssh lin+ และมันควรจะเติมข้อความอัตโนมัติTabssh linux-srv

คุณสามารถเพิ่มตัวเลือกที่มีประโยชน์มากมายเพื่อที่คุณจะได้ไม่ต้องพิมพ์แต่ละครั้ง:

User <a user>
Port <a port number>
IdentityFile <a specific private key>
Compression yes
....

ดังนั้นแทนที่จะพิมพ์ssh -C -p 1022 -i ~/.hidden/prv-key-4096bit superuser@192.158.1.1แบบง่ายssh linux-srvจะพอเพียง!

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.