Opcja klienta SSH, aby ukryć banery serwera?

15

Przeczytałem Zatrzymaj logowanie ssh od drukowania motd z klienta? , ale moja sytuacja jest nieco inna:

  • Chcę zachować Banner / path / to / sometxt serveride
  • Chciałbym przekazać opcję pod pewnymi warunkami, aby Banner nie został wydrukowany (np ssh -o "PrintBanner=No" someserver.).

Dowolny pomysł?

Społeczność
źródło

Odpowiedzi:

-1

Nie możesz (Przynajmniej nie w magazynie OpenSSH)

Baner serwera jest wysyłany przez serwer przed uwierzytelnieniem. Zazwyczaj chodzi o to, aby zawierać prawne wyłączenie odpowiedzialności lub podobny komunikat typu „Jeśli nie masz uprawnień, rozłącz TERAZ” lub inne krytyczne rzeczy, których nie chcesz, aby zdalny użytkownik mógł tłumić / ignorować.

Jeśli naprawdę chcesz się tego pozbyć, musisz zhakować i skompilować własną wersję klienta SSH.

voretaq7
źródło
15
To stare informacje i nie są już prawdziwe w przypadku popularnych dystrybucji. Odpowiedzi poniżej, aby użyć -qlub -o LogLevel=errorpracę wielki teraz :-)
Dogsbody
30

Istnieje LogLevelopcja:

Wycisza baner, ale nadal możesz otrzymywać błędy:

$ ssh -o LogLevel=error localhost 
Permission denied (publickey).
użytkownik3640161
źródło
Nie działał z klientem OpenSSH 6.9 - być może informacje o wersji byłyby przydatne?
Zayne S Halsall
Współpracuje z OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 stycznia 2014
Kulbir Saini
6

Przetestowałem to, myślę, że możesz użyć -qpolecenia ssh. Parametr -q oznacza tryb cichy . Powoduje to tłumienie większości komunikatów ostrzegawczych i diagnostycznych, np

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

lub

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

Mam nadzieję, że to może pomóc innym

szary13
źródło
-q nie działał od klienta Fedory 22 do Centos 6 i Suse 2.6 (klientem był OpenSSH 6.9. Może ta odpowiedź byłaby pozytywnie oceniona, gdyby odnosiła się do konkretnej wersji ssh?
Zayne S Halsall
6

Zaktualizuj ~ / .ssh / config z następującymi, aby ukryć baner

Host *
    LogLevel error
Sashi Kant
źródło
Uważam, że wiersz „Host *” jest redundantny lub niepoprawny. W każdym razie uzyskuję pożądany efekt bez niego. Należy również zauważyć, że OP chciał uzyskać efekt w pewnych warunkach programowych, w którym to przypadku opcja wiersza poleceń wymieniona powyżej jest lepszym rozwiązaniem.
UncaAlby
4

Powinieneś być w stanie ustawić inny Banner(na brak) wewnątrz Matchbloku.

Na przykład:

Match Address 192.0.2.0/24
        Banner none

Ale należy to zrobić po stronie serwera , w oparciu o określone warunki. Nie możesz tego zrobić po stronie klienta .

Michael Hampton
źródło
4

Wygląda na to, że szukasz -q :

Tryb cichy. Powoduje tłumienie większości komunikatów ostrzegawczych i diagnostycznych.

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

Z -q

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

Cicho i spokojnie. Baner jest nadal skonfigurowany, ale nie przeszkadza ci to.

Z drugiej strony: nie używaj banerów. Najlepiej niczego nie potwierdzać ani zaprzeczać. Nie pomoże ci to z ludźmi, o których się nie martwiłeś, a ludzie, o których się martwisz, będą się śmiać, gdy będą pracować;-)

todd_dsm
źródło
0

Dla mnie -o LogLevel=errorbyło lepsze niż -q, ponieważ to ostatnie pomija ważne informacje o błędach (które można następnie uzyskać tylko za pomocą kodu wyjścia).

Porównaj to (bez opcji): [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

z tym (cicho) [root@myserver804 myuser1]# ssh -q targetserver1; echo "exit code=$?" exit code=255

z tym (tylko błędy dziennika) [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

Wniosek jest następujący: jeśli nadal interesują Cię odpowiednie błędy, skorzystaj z nich -o LogLevel=error

Pik Master
źródło
0

Ani -qani nie -oLogLevel=errordziała.

Działanie polega na pomijaniu STDERR

ssh hostname command 2>/dev/null

Minusem jest jednak to, że tłumienie STDERR jest stosowane do całego polecenia, a nie tylko programu SSH.

Aetalidy
źródło
-2

Wystarczy zadzwonić do powłoki, która powinna ukryć baner.

ssh [email protected] /bin/bash

Pamiętaj jednak, że przynajmniej dla mnie moje $ PS1 nie jest ustawione, więc wygląda na to, że się wisi. Musiałem wpisać kilka poleceń, aby sprawdzić, czy działa.

chrskly
źródło
1
To nie ukrywa bannerów pokazanych przez Banneropcję w /etc/sshd_config(przynajmniej nie na FreeBSD / OpenSSH_5.8p2)
voretaq7
Ach, widziałem motd w pytaniu. To nauczy mnie poprawnie czytać opis;)
chrskly
-2

Dla mnie -q wykonał lewę i nadal byłem w stanie pracować z danymi wyjściowymi zapisanymi w pliku.

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

Zatarra
źródło
Świetnie, że to działa dla ciebie. Niemniej jednak to nie odpowiada na pytanie i powinno być co najwyżej komentarzem.
Gerald Schneider,
To jest problem, to odpowiada na pytanie, pozbyłem się motd (banner) Miałem dokładnie ten sam problem, jak podano w pytaniu
Zatarra
Jedyną częścią twojej odpowiedzi, która dotyczy pytania, jest -qparametr. Reszta jest całkowicie niezwiązana i jest tylko pomocna. Parametr został już podany jako odpowiedź, więc nie wahaj się go głosować, jeśli pomógł ci, ale ta „odpowiedź” otrzyma tylko głosy negatywne
Gerald Schneider