ทำไมการแจ้งเตือน“ รหัสผ่าน” ของ ssh ใช้เวลานานกว่าจะปรากฏขึ้น?


94

เมื่อฉันพยายามที่จะให้sshรหัสผ่านใช้เวลานานเกินไป (เกือบสองนาที) ที่จะปรากฏ

ทำไมสิ่งนี้ถึงเกิดขึ้น


1
คำตอบของกิลส์ควรจะคำตอบตามที่อธิบายไว้ในความคิดเห็นที่จริงๆ
gertvdijk

คำตอบ:


143

มีหลายสิ่งที่อาจผิดพลาดได้ เพิ่ม-vvvเพื่อทำให้ ssh พิมพ์รายละเอียดการติดตามของสิ่งที่กำลังทำอยู่และดูว่ามันหยุดอยู่ตรงไหน

ปัญหาอาจเกิดจากไคลเอนต์หรือเซิร์ฟเวอร์

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

อีกสิ่งหนึ่งที่ผิดพลาดได้คือการตรวจสอบสิทธิ์GSSAPIหมดเวลา หากคุณไม่ทราบว่าเป็นเช่นนั้นคุณอาจไม่เชื่อใจ คุณสามารถปิดได้โดยเพิ่มบรรทัดGSSAPIAuthentication noไปที่/etc/ssh/ssh_configหรือ~/.ssh/config(ที่อยู่บนฝั่งไคลเอ็นต์)


8
สำหรับฉันมันเป็นปัญหาของ GSSAPIA การให้คำปรึกษา ขอขอบคุณ.
RajaRaviVarma

14
ค้นหา DNS ย้อนกลับเป็นปัญหาของฉัน
trinth

2
Reverse DNS เป็นตัวการสำคัญสำหรับฉันเช่นกันและUseDNS noแก้ไขมันด้วยเสน่ห์ ฉันอยู่ในเครือข่ายภายในที่ไม่มีเซิร์ฟเวอร์ DNS เพื่อจัดการการค้นหาย้อนกลับสำหรับ IP ภายใน
Jordan Mack

1
มีผลกระทบด้านความปลอดภัยต่อการปิดใช้งานGSSAPIAuthenticationหรือไม่ (googling เป็นเวลา 15 นาทีไม่ได้ทำให้กระจ่าง)
Alexander Malakhov

3
@AlexanderMalakhov หากคุณเชื่อในสิ่งนี้เพื่อเข้าสู่ระบบคุณจะล็อคตัวเองหากคุณปิดการใช้งาน นอกเหนือจากนั้นไม่มี และถ้าคุณใช้ GSSAPI คุณจะรู้ - คุณต้องกำหนดค่าบริการที่ใช้ GSSAPI ในเครือข่ายของคุณ
Gilles

13

ให้เวลาในการเข้าสู่ระบบและดูว่าจะใช้เวลานานเท่าใด:

[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 ไม่คงที่สำหรับฉัน .. ฉันมีการตรวจสอบรหัสผ่านและความล่าช้าสำหรับรหัสผ่านที่ป้อนให้ปรากฏ .. ฉันรอที่จะปรากฏขึ้นแล้วก็ ctrl-c ดังนั้นเวลา 'ไม่ได้รวมการป้อนรหัสผ่าน
barlop

ฉันสามารถยืนยันUseDNS noในการ/etc/ssh/sshd_configแก้ไขปัญหาของฉัน

UseDNS noแก้ไขมัน
Pandurang Patil

@PandurangPatil ตัวเลือกการกำหนดค่าไม่ถูกต้อง: usedns
Yusef Mohamadi

@zhilevan คุณควรพูดถึงว่าทำไมการกำหนดค่าที่ไม่ดี นั่นจะช่วยให้เข้าใจว่าทำไมการตั้งค่าที่ไม่ดี
Pandurang Patil

4

มันเป็นสิ่งที่ผิดปกติจากการติดตั้งของ Ubuntu

หากต้องการแก้ไขคุณต้องเปลี่ยนบรรทัดนี้ใน/etc/nsswitch.conf :

hosts:          files mdns4_minimal [NOTFOUND=return] dns mdns4

และเปลี่ยนมันสำหรับอันนี้:

hosts:          files dns

3
การกำหนดค่าของ Ubuntu ไม่ผิด ในบางกรณี (เครือข่ายในบ้านที่ไม่มีเซิร์ฟเวอร์ DNS กลาง) เป็นสิ่งที่ถูกต้อง ในเครือข่ายอื่น ๆ (เครือข่ายที่ mDNS ขอเวลานอก) มันไม่ดี
Gilles

[NOTFOUND = return] ไม่ควรอยู่ที่นั่น
Neuquino

4
@Nequino มันควรจะมี มีเหตุผลที่คุณไม่เข้าใจอย่างชัดเจน การเล่นnsswitch.confอย่างนี้เป็นการขอให้มีปัญหาและไม่ได้ให้วิธีการทั่วไปในการชะลอ SSH
gertvdijk

นี่ดูเหมือนจะเป็นทางออกเดียวที่ใช้ได้กับฉัน
linello

4

ในกรณีของฉันปัญหาสามารถแก้ไขได้โดยการรีสตาร์ทsystemd-logind:

systemctl restart systemd-logind

นี้เป็นที่กล่าวถึงใน Serverfault

ฉันต้องทำสิ่งนี้เป็นประจำ แต่ไม่รู้ว่าสาเหตุของปัญหาคืออะไร


1

ผลลัพธ์การดีบักสำหรับ ssh ในกรณีของฉันเพิ่งหยุดเป็นเวลา 30 วินาทีในขณะที่มัน 'เชื่อมต่อ' วิธีแก้ไขปัญหานั้นเกี่ยวข้องกับการตั้งค่า DNS ในระบบท้องถิ่นของฉัน การกำหนดค่าเครือข่ายก่อนหน้านี้ทิ้งเซิร์ฟเวอร์ DNS ปลอมไว้ใน/etc/resolv.confไฟล์ การแทนที่ด้วยเซิร์ฟเวอร์ DNS ปัจจุบันแก้ไขปัญหาได้


0

สำหรับฉันเปลี่ยนระบบ 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

สำหรับฉันไฟล์นี้ดูเหมือนว่าจะเป็น / etc / resolv.conf (ไม่มี e)
Shadow

0

ฉันไม่รู้มากเกี่ยวกับสภาพแวดล้อมของโปสเตอร์ตามที่ฉันต้องการ แต่สำหรับคนอื่น ๆ ที่มีปัญหาคล้ายกันอาจเป็นปัญหาsssdที่เราใช้ผูก ldap mojo

สิ่งนี้เกิดขึ้นกับฉัน:

$ time ssh server.example.com

real  2m0.018s
user  0m0.006s
sys   0m0.004s

ฉันต้องเข้าถึงเซิร์ฟเวอร์ (ในกรณีของฉันผ่านคอนโซล) จากนั้นทำสิ่งต่อไปนี้

service restart sssd

หลังจากนั้นสิ่งต่าง ๆ ก็ใช้ได้ ฉันไม่ได้มีเวลาที่จะแก้ปัญหาสาเหตุที่แท้จริง แต่ bandaid นี้เหมาะสำหรับฉัน


0

ฉันสามารถแก้ปัญหารหัสผ่านที่ช้าผ่านทาง 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

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