เมื่อฉันพยายามที่จะให้ssh
รหัสผ่านใช้เวลานานเกินไป (เกือบสองนาที) ที่จะปรากฏ
ทำไมสิ่งนี้ถึงเกิดขึ้น
เมื่อฉันพยายามที่จะให้ssh
รหัสผ่านใช้เวลานานเกินไป (เกือบสองนาที) ที่จะปรากฏ
ทำไมสิ่งนี้ถึงเกิดขึ้น
คำตอบ:
มีหลายสิ่งที่อาจผิดพลาดได้ เพิ่ม-vvv
เพื่อทำให้ ssh พิมพ์รายละเอียดการติดตามของสิ่งที่กำลังทำอยู่และดูว่ามันหยุดอยู่ตรงไหน
ปัญหาอาจเกิดจากไคลเอนต์หรือเซิร์ฟเวอร์
ปัญหาที่พบบ่อยบนเซิร์ฟเวอร์คือถ้าคุณกำลังเชื่อมต่อจากไคลเอนต์ที่ DNS การค้นหาหมดเวลาย้อนกลับ (“ การค้นหา DNS ย้อนกลับ” หมายถึงการรับกลับจากที่อยู่ IP ของเครื่องไคลเอนต์ไปยังชื่อโฮสต์มันไม่ได้มีประโยชน์สำหรับการรักษาความปลอดภัย แต่มีประโยชน์เพียงเล็กน้อยในการวินิจฉัยความพยายามในการแบ่งจากรายการบันทึก แต่การกำหนดค่าเริ่มต้น หากต้องการปิดการค้นหา DNS ย้อนกลับเพิ่มUseDNS no
ไป/etc/ssh/sshd_config
(คุณจะต้องรากบนเซิร์ฟเวอร์จำเริ่มบริการ SSH ในภายหลัง)
อีกสิ่งหนึ่งที่ผิดพลาดได้คือการตรวจสอบสิทธิ์GSSAPIหมดเวลา หากคุณไม่ทราบว่าเป็นเช่นนั้นคุณอาจไม่เชื่อใจ คุณสามารถปิดได้โดยเพิ่มบรรทัดGSSAPIAuthentication no
ไปที่/etc/ssh/ssh_config
หรือ~/.ssh/config
(ที่อยู่บนฝั่งไคลเอ็นต์)
UseDNS no
แก้ไขมันด้วยเสน่ห์ ฉันอยู่ในเครือข่ายภายในที่ไม่มีเซิร์ฟเวอร์ DNS เพื่อจัดการการค้นหาย้อนกลับสำหรับ IP ภายใน
GSSAPIAuthentication
หรือไม่ (googling เป็นเวลา 15 นาทีไม่ได้ทำให้กระจ่าง)
ให้เวลาในการเข้าสู่ระบบและดูว่าจะใช้เวลานานเท่าใด:
[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct 4 07:55:03 2013 from 3.60.40.232
[root@ISSLABNTL01 ~]# exit
logout
Connection to ISSLABNTL01 closed.
real 0m45.192s
user 0m0.003s
sys 0m0.005s
You have new mail in /var/spool/mail/root
[root@gislab00207 ~]#
ดูข้างบนใช้เวลาประมาณ 45 วินาทีในการเข้าสู่ระบบ -------- VERY SLOW
เมื่อคุณเข้าสู่ระบบในฐานะ root แก้ไขไฟล์ sshd_config และเปลี่ยนรายการ UseDNS ดังต่อไปนี้ ที่นี่ฉันใช้ sed แทนการแก้ไขไฟล์
[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_config
#UseDNS yes
[root@ISSLABNTL01 ~]# sed -i 's/#UseDNS yes/UseDNS no/g' /etc/ssh/sshd_config
[root@ISSLABNTL01 ~]# grep -i dns /etc/ssh/sshd_config
UseDNS no
[root@ISSLABNTL01 ~]# service sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
[root@ISSLABNTL01 ~]# exit
ให้เราตั้งเวลากระบวนการล็อกอินและดูว่าจะใช้เวลานานเท่าใด
[root@gislab00207 ~]# time ssh root@ISSLABNTL01
root@isslabntl01's password:
Last login: Fri Oct 4 07:55:03 2013 from 3.60.40.232
[root@ISSLABNTL01 ~]# exit
logout
Connection to ISSLABNTL01 closed.
real 0m6.192s
user 0m0.003s
sys 0m0.005s
You have new mail in /var/spool/mail/root
[root@gislab00207 ~]#
ดูตอนนี้ใช้เวลา 6 วินาทีเวลาที่ฉันจะพิมพ์รหัสผ่าน
UseDNS no
แก้ไขมัน
มันเป็นสิ่งที่ผิดปกติจากการติดตั้งของ Ubuntu
หากต้องการแก้ไขคุณต้องเปลี่ยนบรรทัดนี้ใน/etc/nsswitch.conf :
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
และเปลี่ยนมันสำหรับอันนี้:
hosts: files dns
nsswitch.conf
อย่างนี้เป็นการขอให้มีปัญหาและไม่ได้ให้วิธีการทั่วไปในการชะลอ SSH
ในกรณีของฉันปัญหาสามารถแก้ไขได้โดยการรีสตาร์ทsystemd-logind
:
systemctl restart systemd-logind
นี้เป็นที่กล่าวถึงใน Serverfault
ฉันต้องทำสิ่งนี้เป็นประจำ แต่ไม่รู้ว่าสาเหตุของปัญหาคืออะไร
ผลลัพธ์การดีบักสำหรับ ssh ในกรณีของฉันเพิ่งหยุดเป็นเวลา 30 วินาทีในขณะที่มัน 'เชื่อมต่อ' วิธีแก้ไขปัญหานั้นเกี่ยวข้องกับการตั้งค่า DNS ในระบบท้องถิ่นของฉัน การกำหนดค่าเครือข่ายก่อนหน้านี้ทิ้งเซิร์ฟเวอร์ DNS ปลอมไว้ใน/etc/resolv.conf
ไฟล์ การแทนที่ด้วยเซิร์ฟเวอร์ DNS ปัจจุบันแก้ไขปัญหาได้
สำหรับฉันเปลี่ยนระบบ dns เป็น 127.0.0.1 ก่อนหน้านี้เป็นโฮสต์ที่ไม่มีอยู่
nano /etc/resolv.conf
และเขียนดังต่อไปนี้
domain localdomain
search localdomain
(Removed this line) ===> nameserver 10.0.0.1
(Added this line) ===> nameserver 127.0.0.1
ฉันไม่รู้มากเกี่ยวกับสภาพแวดล้อมของโปสเตอร์ตามที่ฉันต้องการ แต่สำหรับคนอื่น ๆ ที่มีปัญหาคล้ายกันอาจเป็นปัญหาsssd
ที่เราใช้ผูก ldap mojo
สิ่งนี้เกิดขึ้นกับฉัน:
$ time ssh server.example.com
real 2m0.018s
user 0m0.006s
sys 0m0.004s
ฉันต้องเข้าถึงเซิร์ฟเวอร์ (ในกรณีของฉันผ่านคอนโซล) จากนั้นทำสิ่งต่อไปนี้
service restart sssd
หลังจากนั้นสิ่งต่าง ๆ ก็ใช้ได้ ฉันไม่ได้มีเวลาที่จะแก้ปัญหาสาเหตุที่แท้จริง แต่ bandaid นี้เหมาะสำหรับฉัน
ฉันสามารถแก้ปัญหารหัสผ่านที่ช้าผ่านทาง ssh - issue ได้โดยตรวจสอบการเปิดใช้งาน DNS Relayในการตั้งค่า DHCP บนเราเตอร์ dlink ของฉัน หลังจากนั้นการเชื่อมต่อกับ SSH ทำงานได้ภายในไม่กี่วินาที
Network Settings -> Router Settings -> Enable DNS Relay [x]
การกำหนดค่าเริ่มต้นส่งต่อคำขอ DNS ทุกรายการไปยังผู้ให้บริการ มันช้าแม้ว่าฉันจะเชื่อมต่อกับ ssh pi@10.0.0.103 คำแนะนำสำหรับโซลูชันคือรายการใน /etc/resolv.conf "search upc.at" ซึ่งจัดทำผ่าน dhcp
รัฐคู่มือ dlink:
When DNS Relay is enabled, DHCP clients of the router will be assigned
the router's LAN IP address as their DNS server. All DNS requests that
the router receives will be forwarded to your ISPs DNS servers.
When DNS relay is disabled, all DHCP clients of the router will
be assigned the ISP's DNS server.
หลังจากการปล่อย dhcp บนไคลเอนต์และเซิร์ฟเวอร์การเชื่อมต่อผ่าน SSH นั้นรวดเร็วอีกครั้ง HTH