Варіант клієнта SSH для придушення банерів сервера?


15

Я читав " Зупинити вхід з ssh від друку motd" від клієнта? , проте моя ситуація дещо інша:

  • Я хочу тримати банер / шлях / до / дещо серверів
  • Я хотів би прийняти опцію за певних умов, щоб банер не був надрукований (наприклад ssh -o "PrintBanner=No" someserver).

Будь-яка ідея?

Відповіді:


-1

Ви не можете. (Принаймні, не з акціями OpenSSH)

Серверний банер надсилається сервером до того, як відбудеться аутентифікація. Сенс зазвичай полягає в тому, щоб містити юридичну відмову або подібне повідомлення типу "Якщо вам не дозволено відключити ЗАРАЗ" або інші важливі речі, ви не хочете, щоб віддалений користувач міг придушувати / ігнорувати.

Якщо ви дійсно хочете позбутися цього, вам потрібно буде зламати та скласти власну індивідуальну версію клієнта SSH.


15
Це стара інформація і більше не відповідає дійсності для поширених розповсюджень. Відповіді нижче, щоб використати -qабо -o LogLevel=errorпрацювати зараз чудово :-)
Собаки

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. Може бути, ця відповідь буде анонсована, якщо вона посилається на конкретну версію ssh?
Zayne S Halsall

6

Оновіть ~ / .ssh / config з наступним, щоб придушити банер

Host *
    LogLevel error

Я вважаю, що рядок "Хост *" є або зайвим, або неправильним. У будь-якому випадку я отримую бажаний ефект без цього. Ще слід зазначити, що ОП хотів отримати ефект за певних програмних умов, і в цьому випадку кращим рішенням є варіант переліченого вище командного рядка.
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 \" всього | втрачено + знайдено | ./ | ../ \ "| awk '{print \ $ NF}' | sed 's /.\$ // g '"> $ {basedir} /28.list


Чудово, що це працює на вас. Тим не менш, це не дає відповіді на питання і має бути максимум коментарем.
Джеральд Шнайдер

У цьому проблема, вона відповідає на питання, я позбувся motd (банер) У мене була точно така ж проблема, як зазначено в запитанні
Zatarra

Єдина частина вашої відповіді, яка стосується питання, - це -qпараметр. Решта абсолютно не пов'язані між собою і корисні лише вам. Параметр уже надано як відповідь, тож сміливо додайте його, якщо він вам допоміг, але ця "відповідь" отримає лише зворотний зв'язок
Джеральд Шнайдер
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.