วิธีการตรวจสอบบันทึก sshd?


124

ฉันติดตั้ง Ubuntu 9.10 แล้วsshdและฉันสามารถเชื่อมต่อกับมันได้สำเร็จโดยใช้ล็อกอินและรหัสผ่าน ฉันกำหนดค่าการRSAเข้าสู่ระบบที่สำคัญและตอนนี้มี "เซิร์ฟเวอร์ปฏิเสธกุญแจของเรา" ตามที่คาดไว้ ตกลงตอนนี้ฉันต้องการตรวจสอบsshdบันทึกเพื่อหาปัญหา ฉันได้ตรวจสอบ/etc/ssh/sshd_configแล้วและมันมี

SyslogFacility AUTH
LogLevel INFO

ตกลง. ฉันกำลังดู/var/log/auth.logและ ... มันว่างเปล่า O_O เปลี่ยนLoglevelเป็นVERBOSEไม่มีอะไร - auth.logยังว่างอยู่ มีคำแนะนำใดบ้างที่ฉันสามารถตรวจสอบsshdบันทึกได้


7
คุณตรวจสอบการกำหนดค่า syslog หรือไม่? ฉันไม่ได้ใช้งาน Ubuntu แต่อาจเปลี่ยนเส้นทางสิ่งอำนวยความสะดวก AUTH ไปยังไฟล์บันทึกการทำงานอื่น อาจจะ / var / log / ข้อความ?
ศ. Moriarty

จะตรวจสอบการกำหนดค่า syslog ได้อย่างไร? น่าเสียดายที่ฉันไม่ได้เป็นลินุกซ์ที่ดีมาก :( cat /var/log/messages | grep sshไม่มีอะไรแสดง :(.
grigoryvp

คุณถูก. เปลี่ยนเส้นทางไป/etc/syslog.conf AUTH /var/logauth.logกรุณาเขียนคำตอบของคุณดังนั้นฉันสามารถยอมรับมัน :)
grigoryvp

3
บนเซิร์ฟเวอร์ของฉัน sshd บันทึกลงใน / var / log / secure นี่คือการกำหนดค่าใน /etc/rsyslog.conf ที่จุดเริ่มต้นบรรทัด "authpriv. *"
Isaac Betesh

1
authpriv ?? เราควรจะรู้ได้ยังไงว่ามันเกี่ยวข้องกับ sshd อย่างไร? :-)
Spencer Williams

คำตอบ:


7

หากไม่มีใครใช้ระบบในขณะนี้คุณสามารถทำสิ่งที่ฉันทำในกรณีเช่นนี้:

  • หยุดบริการ sshd (อย่างน้อยฉันก็สามารถทำได้ในขณะที่เข้าสู่ระบบผ่าน ssh)
  • เริ่มต้น sshd ด้วยตนเองและเพิ่มตัวเลือก -d เพื่อรับเอาต์พุตการดีบัก verbose เพิ่มเติม หากคุณไม่มีสิ่งที่ขี้ขลาดเกิดขึ้นควรใช้ปุ่มเดียวกันและกำหนดค่าเมื่อเริ่มต้นอย่างถูกต้อง

143
การหยุด SSHD บนเซิร์ฟเวอร์ระยะไกลเป็นความคิดที่เลว วิธีนี้อาจช่วยแก้ปัญหาสำหรับการตั้งค่าส่วนใหญ่ (หรือส่วนใหญ่) ส่วนใหญ่ แต่ถ้าสิ่งใดผิดพลาด - การเชื่อมต่อของคุณเปิดไฟทั้งสองด้านหลงลืม ฯลฯ - คุณถูกล็อคไว้นอกกรอบ ซึ่งเป็นข่าวร้าย
ชื่อเสียง

1
ควรสังเกตว่าวิธีเดียวที่คุณสามารถเริ่มบริการได้หลังจากหยุดด้วยตนเองก็คือการเข้าถึงประเภทอื่น ๆ เช่นการเชื่อมต่อระยะไกลอื่นที่ไม่ใช่ SSH หรือคุณกำลังนั่งอยู่ข้างหน้า
Spencer Williams

26
คำถามนี้จะตอบคำถามได้อย่างไร ฉันลงจอดที่นี่จากการค้นหาเว็บโดยคาดหวังว่าจะเรียนรู้วิธีตรวจสอบไฟล์บันทึก SSHD ไม่ใช่สิ่งที่เหมาะกับคุณสำหรับปัญหาบางอย่าง ... ประณามฉันต้องการให้ผู้อ่านในเครือข่ายกองซ้อนแลกเปลี่ยนจะอ่านและตอบคำถามจริง ๆ คำถามที่พวกเขาต้องการให้เป็น ....

4
คุณสามารถเริ่ม sshd อื่นบนพอร์ตอื่น เชื่อมต่อกับอันนั้น จากนั้นหยุดการ sshd หลักและเริ่มใหม่บนพอร์ต 22 หากมีสิ่งใดล้มเหลวให้รีบูตกล่องโดยใช้ DRAC หรือการจัดการคลาวด์ของคุณ คุณควรเริ่มต้น sshd ตอนบูตใช่ไหม ไม่ต้องห่วง.
Bruno Bronosky

1
@JoelESalas ชุมชนไม่ได้ตัดสินว่าคำตอบใดเป็นที่ยอมรับ
kasperd

155

สร้างคำตอบตามความคิดเห็นด้านบนให้เครดิตกับ @Prof โมริอาร์ตีและ @Eye of Hell

ความล้มเหลวในการตรวจสอบความถูกต้องของ SSH ถูกบันทึกที่นี่ /var/log/auth.log

ต่อไปนี้ควรให้บรรทัดบันทึกที่เกี่ยวข้องกับ ssh เท่านั้น

grep 'sshd' /var/log/auth.log

เพื่อให้อยู่ในด้านที่ปลอดภัยให้รับสองสามร้อยบรรทัดสุดท้ายแล้วค้นหา (เพราะหากไฟล์บันทึกมีขนาดใหญ่เกินไป grep บนไฟล์ทั้งหมดจะใช้ทรัพยากรระบบมากขึ้นไม่ต้องพูดถึงจะใช้เวลานานกว่า)

tail -500 /var/log/auth.log | grep 'sshd'


8
คำตอบนี้ คำตอบอื่นที่มีลูกศรสีเขียวคือปลอม เปลี่ยนลูกศร
meshfields

5
ทำไมไม่ใช้tail -f ...เพื่อตรวจสอบมันในเวลาจริง? นี่เป็นปัญหาของไฟล์บันทึกที่ใหญ่กว่าหรือไม่?
ingh.am

6
less +F ...จะ '
ย่อ

5
และlnavดียิ่งกว่าน้อยกว่า / หาง
Wayne Werner

7
ปล.: ถ้าเซิร์ฟเวอร์ของคุณคือ Red Hat (เหมือนกับ CentOS), พา ธ ของบันทึก sshd / login คือ / var / log / secure (ตรวจสอบโฟลเดอร์ / var / log สำหรับไฟล์บันทึกของวันที่ที่ระบุด้วย) ดูคำตอบนี้: serverfault.com/questions/465833/…
Brian Hellekin

14

หากคุณสามารถลองเชื่อมต่อที่ล้มเหลวอีกครั้งได้อย่างง่ายดายวิธีการหนึ่งก็คือ:

/usr/sbin/sshd -d -p 2222

แล้วลองเชื่อมต่อกับ:

ssh -p 2222 user@host

ใช้งาน-p 2222เพื่อที่เราจะได้ไม่ต้องหยุดเซิร์ฟเวอร์ SSH หลักซึ่งสามารถล็อคคุณไว้ได้

ดูเพิ่มเติมที่: https://unix.stackexchange.com/a/55481/32558


1

หากคุณต้องการดูข้อความบันทึกทั้งหมดเกี่ยวกับ sshd ให้เรียกใช้สิ่งนี้:

grep -rsh sshd /var/log |sort

2
บันทึกจะเริ่มต้นด้วยรายการMar 14 19:52:04ที่ไม่รวมปีและไม่ได้จัดเรียงอย่างง่ายดาย (แม้ว่าคุณจะโชคดีกับsort --month-sortสมมติว่าคุณไม่ได้ข้ามเขตแดนระหว่างปี) ไฟล์บันทึกของตัวเองได้รับการจัดเรียงแล้วดังนั้นคุณต้องสแกนไฟล์ตามลำดับที่ถูกต้อง นอกจากนี้การเรียกซ้ำgrep -rจะช้ามากในระบบที่มีบันทึกขนาดใหญ่ ไม่มีเหตุผลที่จะสแกนสิ่งต่าง ๆ เพิ่มเติมเช่นบันทึก HTTPD ของคุณ
Adam Katz

1

คุณสามารถ tail -f /var/log/auth.log


1
ยินดีต้อนรับสู่ ServerFault คุณอ่านคำถามหรือไม่ เขาไม่ได้รับข้อมูลในไฟล์นั้น tailหากไม่มีข้อมูลอยู่ในนั้น
ลูกไก่

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