ตัวเลือกไคลเอ็นต์ SSH เพื่อระงับแบนเนอร์เซิร์ฟเวอร์หรือไม่


15

ฉันอ่านStop ssh จากการพิมพ์ motd จากไคลเอ็นต์หรือไม่ อย่างไรก็ตามสถานการณ์ของฉันแตกต่างกันเล็กน้อย:

  • ฉันต้องการเก็บเซิร์ฟเวอร์ / พา ธ / ไปยัง / เซิร์ฟเวอร์บางครั้ง
  • ฉันต้องการส่งตัวเลือกภายใต้เงื่อนไขที่เฉพาะเจาะจงเพื่อไม่ให้พิมพ์แบนเนอร์ (เช่นssh -o "PrintBanner=No" someserver)

ความคิดใด ๆ

คำตอบ:


-1

คุณทำไม่ได้ (อย่างน้อยไม่ได้อยู่กับ OpenSSH หุ้น)

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

หากคุณต้องการกำจัดสิ่งนี้จริงๆคุณจะต้องทำการแฮ็คและคอมไพล์ SSH ไคลเอ็นต์เวอร์ชั่นที่ปรับแต่งแล้วของคุณเอง


15
นี่เป็นข้อมูลเก่าและไม่เป็นความจริงอีกต่อไปสำหรับการแจกแจงทั่วไป คำตอบด้านล่างเพื่อใช้อย่างใดอย่างหนึ่ง-qหรือ-o LogLevel=errorทำงานได้ดีในขณะนี้ :-)
Dogsbody

30

มีLogLevelตัวเลือกคือ:

มันเงียบแบนเนอร์ แต่คุณยังสามารถรับข้อผิดพลาดได้:

$ ssh -o LogLevel=error localhost 
Permission denied (publickey).

ไม่ได้ทำงานกับไคลเอนต์ OpenSSH 6.9 - บางทีข้อมูลรุ่นอาจมีประโยชน์หรือไม่
Zayne S Halsall

ทำงานร่วมกับ OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 มกราคม 2014
Kulbir Saini

6

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

ssh -t '$node2' 'sudo cat xxx' |grep xxxxx" 2>/dev/null >/root/node2

หรือ

ssh -t -q '$node2' 'sudo cat xxxx' |grep xxx" >/root/node2

หวังว่านี่จะช่วยผู้อื่นได้


-q ไม่ได้งานจากลูกค้า Fedora 22 Centos 6 และ Suse 2.6 (ไคลเอนต์เป็น OpenSSH 6.9 บางทีคำตอบนี้จะ upvoted ถ้ามันอ้างอิง SSH รุ่นที่เฉพาะเจาะจง.
Zayne S Halsall

6

อัปเดต ~ / .ssh / config ด้วยการทำตามเพื่อระงับแบนเนอร์

Host *
    LogLevel error

ฉันเชื่อว่าบรรทัด "Host *" เป็นข้อมูลซ้ำซ้อนหรือไม่ถูกต้อง ฉันจะได้รับเอฟเฟกต์ที่ต้องการไม่ว่าจะด้วยวิธีใดก็ตาม ควรสังเกตว่า OP ต้องการรับผลกระทบภายใต้เงื่อนไขการเขียนโปรแกรมบางอย่างซึ่งในกรณีนี้ตัวเลือกบรรทัดคำสั่งที่แสดงไว้ด้านบนเป็นทางออกที่ดีกว่า
UncaAlby

4

คุณควรจะสามารถตั้งค่าBanner(ไม่เป็น) ภายในMatchบล็อก

ตัวอย่างเช่น

Match Address 192.0.2.0/24
        Banner none

แต่สิ่งนี้จะต้องทำฝั่งเซิร์ฟเวอร์ขึ้นอยู่กับเงื่อนไขที่เฉพาะเจาะจง คุณไม่สามารถทำได้จากฝั่งไคลเอ็นต์


4

ดูเหมือนว่าคุณกำลังมองหา-q :

โหมดเงียบ ทำให้ข้อความเตือนและวินิจฉัยส่วนใหญ่ถูกระงับ

ssh user@host
*------------------------------------------------------------------------------*
| banner: blah                                                                 |
*------------------------------------------------------------------------------*
Last login: Mon Oct  2 16:40:01 2017 from ipAddress
$

กับ -q

ssh -q user@host
Last login: Mon Oct  2 16:40:30 2017 from ipAddress
$

สวยและเงียบสงบ แบนเนอร์ยังคงมีการกำหนดค่า แต่คุณไม่ได้ใส่ใจด้วย

ในหมายเหตุอื่น: อย่าใช้แบนเนอร์ เป็นการดีที่สุดที่จะไม่ยืนยันหรือปฏิเสธสิ่งใด มันจะไม่ช่วยคุณกับคนที่คุณไม่กังวลและคนที่คุณกังวลจะหัวเราะเมื่อพวกเขาทำงานผ่านมัน;-)


0

สำหรับฉันนั้น-o LogLevel=errorดีกว่า-qเพราะหลังระงับข้อมูลข้อผิดพลาดที่สำคัญ (ซึ่งคุณสามารถได้รับผ่านรหัสทางออกเท่านั้น)

เปรียบเทียบสิ่งนี้ (ไม่มีตัวเลือก): [root@myserver804 myuser1]# ssh targetserver1; echo "exit code=$?" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is SHA256:hvtR8Dl09aUeCeG2cT5EA8b+nbCOoV6h1DUON2vE63w. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending RSA key in /root/.ssh/known_hosts:1735 RSA host key for targetserver1 has changed and you have requested strict checking. Host key verification failed. exit code=255

ด้วยสิ่งนี้ (เงียบ) [root@myserver804 myuser1]# ssh -q targetserver1; echo "exit code=$?" exit code=255

ด้วยสิ่งนี้ (เฉพาะบันทึกข้อผิดพลาด) [root@myserver804 myuser1]# ssh -o LogLevel=error targetserver1; echo "exit code=$?" @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is SHA256:hvtR8Dl09aUeCeG2cT5EA8b+nbCOoV6h1DUON2vE63w. Please contact your system administrator. Add correct host key in /root/.ssh/known_hosts to get rid of this message. Offending RSA key in /root/.ssh/known_hosts:1735 RSA host key for targetserver1 has changed and you have requested strict checking. Host key verification failed. exit code=255

ดังนั้นข้อสรุปคือ - ถ้าคุณยังสนใจข้อผิดพลาดที่เกี่ยวข้องให้ใช้ -o LogLevel=error


0

ทั้ง-qหรือ-oLogLevel=errorผลงาน

การทำงานคืออะไรเพื่อยับยั้งSTDERR

ssh hostname command 2>/dev/null

อย่างไรก็ตามข้อเสียคือการปราบปรามSTDERRถูกนำไปใช้กับคำสั่งทั้งหมดไม่ใช่เพียงแค่โปรแกรม SSH


-2

เพียงแค่เรียกเปลือกที่ควรปราบปรามแบนเนอร์

ssh you@someplace.com /bin/bash

โปรดทราบว่าสำหรับฉันอย่างน้อย $ PS1 ของฉันไม่ได้รับการตั้งค่าดังนั้นดูเหมือนว่ามันจะแขวนอยู่ ฉันต้องพิมพ์คำสั่งสองสามคำเพื่อยืนยันว่ามันใช้งานได้


1
สิ่งนี้จะไม่ระงับแบนเนอร์ที่แสดงโดยBannerตัวเลือกใน/etc/sshd_config(อย่างน้อยก็ไม่ได้อยู่ใน FreeBSD / OpenSSH_5.8p2)
voretaq7

อาฉันเห็น motd ในคำถาม ที่จะได้เรียนรู้ฉันไปอ่านคำอธิบายได้อย่างถูกต้อง;)
chrskly

-2

สำหรับฉัน -q ทำอุบายและฉันก็ยังสามารถทำงานกับผลลัพธ์ที่บันทึกไว้ในไฟล์

ssh -q root @ server28 "ls -alF / dr_mksysb | egrep -v \" total | lost + found | ./ | ../ \ "| awk '{พิมพ์ \ $ NF}' | sed 's /.\$ // g '"> $ {basedir} /28.list


ยอดเยี่ยมที่เหมาะกับคุณ อย่างไรก็ตามสิ่งนี้ไม่ได้ตอบคำถามและควรมีความคิดเห็นมากที่สุด
Gerald Schneider

นั่นคือปัญหามันจะตอบคำถามฉันกำจัด motd (banner) ฉันมีปัญหาตรงตามที่ระบุไว้ในคำถาม
Zatarra

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