การหยุดแบนเนอร์ ssh จากไคลเอนต์ OpenSSH


34

ฉันกำลังเข้าสู่เซิร์ฟเวอร์ที่มีชุดแบนเนอร์ ssh ฉันต้องการที่จะปราบปรามมัน (โดยเฉพาะอย่างยิ่งสำหรับการใช้งานที่ไม่ใช่แบบโต้ตอบ) sshd_configฉันไม่ได้มีการเข้าถึงไปยังเซิร์ฟเวอร์

ทางออกที่ดีที่สุดที่ฉันได้พบคือการตั้งค่าLogLevel ERRORตัวเลือกในไคลเอนต์ ปัญหาคือว่าสิ่งนี้จะระงับINFOข้อความระดับอื่น ๆซึ่งฉันไม่ต้องการซ่อน (ค้นหาแหล่ง OpenSSH เพื่อlogitหาตัวอย่าง) ฉันยังสามารถใช้ssh -qแต่นั่นจะปราบปรามได้มากกว่านี้

มีวิธีแก้ปัญหาเฉพาะเจาะจงอื่น ๆ อีกหรือไม่?

คำตอบ:


43

AFAIK " ssh -q" หรือ " LogLevel QUIET" in ~/.ssh/configเป็นวิธี "ดั้งเดิม" ในการปิดปากแบนเนอร์ ดังนั้นคุณมี "ดีกว่า" ประนีประนอมกับ " LogLevel ERROR"

โซลูชันที่เฉพาะเจาะจงมากขึ้นคือการใช้เวอร์ชันที่กำหนดเองของไคลเอ็นต์ ssh หากเป็นตัวเลือก


2
ฉันคิดว่าLogLevel ERRORจะระงับแบนเนอร์ใน OpenSSH เวอร์ชันที่ใหม่กว่าเท่านั้น ในรุ่นที่เก่ากว่าLogLevel QUIETหรือssh -qจำเป็นต้องมี
Michael Hoffman

3
หาก-qไม่ได้ผล (ไม่เหมาะกับฉันใน Debian 7) คุณสามารถใช้วิธีแก้ไขปัญหาจากคำถามอื่น: serverfault.com/a/764403/62024
Nux

1

คุณยังสามารถใช้:

Banner none

บน

/etc/ssh/sshd_config

1
OP ระบุ "ฉันไม่สามารถเข้าถึงเซิร์ฟเวอร์sshd_config" ดังนั้นน่าเสียดายที่นี่ไม่ตอบคำถาม
นาย Shunz

@MrShunz คุณพูดถูก แต่ฉันมาที่หน้านี้เพื่อค้นหาSuppressing ssh banner from OpenSSH clientและคำตอบนี้แม้ว่ามันจะไม่ตอบคำถาม OP อย่างเต็มที่ แต่ก็อาจช่วยผู้ใช้ในอนาคตได้
Pedro Lobito

0

ติดตั้ง hexedit:

apt-get update && apt-get install hexedit

สำรองไบนารี sshd ของคุณและสร้างสำเนาทำงานได้ (เป็น root):

  cp -p /usr/sbin/sshd /tmp/sshd.backup
  cp -p /tmp/sshd.backup /tmp/sshd.new

อัปเดตไบนารีด้วย hexedit:

hexedit /tmp/sshd.new

กด TAB เพื่อสลับจาก HEX เป็นพื้นที่ ASCII

ใช้ CTRL + S เพื่อแสดงพรอมต์การค้นหาและค้นหาข้อความในแบนเนอร์ของคุณมากกว่าที่คุณต้องการซ่อนเช่น 'OpenSSH_7.4'

คุณควรเห็นบางสิ่งเช่น:

0007DA54   61 67 65 6E  74 00 00 00  4F 70 65 6E  agent...Open
0007DA60   53 53 48 5F  37 2E 34 70  31 20 52 61  SSH_7.4p1 Ra
0007DA6C   73 70 62 69  61 6E 2D 31  30 2B 64 65  spbian-10+de
0007DA78   62 39 75 32  00 00 00 00  4F 70 65 6E  b9u2....Open

ใช้ปุ่มลูกศรเพื่อเน้นจุดเริ่มต้นของสตริงที่คุณต้องการอัปเดตและพิมพ์การแทนที่ของคุณ

ระวังอย่าให้อยู่ในขอบเขตของความยาวของแบนเนอร์ดั้งเดิม นอกจากนี้คุณยังสามารถกด TAB เพื่อเปลี่ยนกลับไปเป็นพื้นที่ HEX หากคุณต้องการตั้งค่าสตริงแต่ละคำให้เป็น '00'

การเปลี่ยนแปลงของคุณควรมีลักษณะดังนี้:

0007DA54   61 67 65 6E  74 00 00 00  48 65 72 65  agent...Here
0007DA60   20 62 65 20  64 72 61 67  6F 6E 73 2E   be dragons.
0007DA6C   20 54 75 72  6E 20 42 61  63 6B 00 00   Turn Back..
0007DA78   00 00 00 00  00 00 00 00  4F 70 65 6E  ........Open

บันทึกการเปลี่ยนแปลงของคุณด้วย CTRL + x และ a

ตรวจสอบว่ามีอินสแตนซ์ที่เราพลาดหรือไม่ (เราคาดว่าจะไม่มีเอาต์พุตตอนนี้):

strings /tmp/sshd.new | grep Rasp

อัปเดต sshd และเริ่มบริการใหม่เพื่อการวัดที่ดี:

rm /usr/sbin/sshd
cp -p /tmp/sshd.new /usr/sbin/sshd
systemctl restart ssh.service

ตรวจสอบว่าคุณยังสามารถใช้ SSH ได้ (ไม่เช่นนั้นจะเรียกคืนการสำรองข้อมูลหรือติดตั้ง OpenSSH จากผู้จัดการแพ็คเกจของคุณ!):

ssh -vv user@ip

บันทึก!!

การเปลี่ยนแปลงนี้จะเป็นเพียงชั่วคราวเมื่อใดก็ตามที่คุณอัปเดต OpenSSH ไบนารีจะถูกแทนที่


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