Opzione client SSH per sopprimere i banner del server?


Risposte:


-1

Non puoi. (Almeno non con OpenSSH di serie)

Il banner del server viene inviato dal server prima che avvenga l'autenticazione. In genere è utile contenere un disclaimer legale o un messaggio simile "Se non sei autorizzato a disconnetterti ORA" o altre cose critiche che non desideri che l'utente remoto sia in grado di sopprimere / ignorare.

Se vuoi davvero sbarazzartene, dovrai hackerare e compilare la tua versione personalizzata del client SSH.


15
Questa è una vecchia informazione e non è più vera su distribuzioni comuni. Le risposte qui sotto per utilizzare -qo -o LogLevel=errorfunzionano alla grande ora :-)
Dogsbody

28

C'è LogLevelun'opzione:

Silenzia il banner ma sei ancora in grado di ricevere errori:

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

Non ha funzionato con il client OpenSSH 6.9 - forse le informazioni sulla versione sarebbero utili?
Zayne S Halsall,

Funziona con OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 6 gennaio 2014
Kulbir Saini,

6

L'ho provato, penso che tu possa usare -qnel comando ssh. Il parametro -q indicava la modalità silenziosa . Provoca la soppressione della maggior parte dei messaggi di avviso e di diagnostica, ad es

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

o

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

Spero che questo possa aiutare gli altri


-q non funzionava da un client Fedora 22 a Centos 6 e Suse 2.6 (il client era OpenSSH 6.9. Forse questa risposta verrebbe annullata se si riferisse a una versione specifica di ssh?
Zayne S Halsall

5

Aggiorna ~ / .ssh / config con il seguente per sopprimere il banner

Host *
    LogLevel error

Credo che la riga "Host *" sia ridondante o errata. Ad ogni modo, ottengo l'effetto desiderato senza di esso. Inoltre, va notato che OP voleva ottenere l'effetto in determinate condizioni programmatiche, nel qual caso l'opzione da riga di comando sopra elencata è la soluzione migliore.
UncaAlby,

4

Dovresti essere in grado di impostare un diverso Banner(su nessuno) all'interno di un Matchblocco.

Per esempio:

Match Address 192.0.2.0/24
        Banner none

Ma questo deve essere fatto sul lato server , in base a condizioni specifiche. Non puoi farlo dal lato client .


4

Sembra che tu stia cercando -q :

Modalità silenziosa. Fa sì che la maggior parte dei messaggi di avviso e di diagnostica vengano eliminati.

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

Con -q

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

Bello e tranquillo. Il banner è ancora configurato ma non ti dà fastidio.

In un'altra nota: non usare banner. È meglio non confermare o negare nulla. Non ti aiuterà con le persone di cui non eri preoccupato e le persone di cui sei preoccupato rideranno mentre ci superano;-)


0

Per me, è -o LogLevel=errorstato meglio di -q, perché quest'ultimo sopprime le informazioni importanti sull'errore (che puoi quindi ottenere solo tramite il codice di uscita).

Confronta questo (senza opzioni): [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

con questo (tranquillo) [root@myserver804 myuser1]# ssh -q targetserver1; echo "exit code=$?" exit code=255

con questo (solo errori di registro) [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

Quindi la conclusione è: se sei ancora interessato a errori rilevanti, usa -o LogLevel=error


0

Né il -qo le -oLogLevel=erroropere.

Ciò che funziona è sopprimere STDERR

ssh hostname command 2>/dev/null

Il rovescio della medaglia, tuttavia, è che la soppressione STDERR viene applicata all'intero comando e non solo al programma SSH.


-2

Basta chiamare una shell, che dovrebbe sopprimere il banner.

ssh you@someplace.com /bin/bash

Nota però, almeno per me, il mio $ PS1 non viene impostato, quindi sembra sospeso. Ho dovuto digitare un paio di comandi per verificare che funzionasse.


1
Questo non sopprimerà i banner mostrati Bannerdall'opzione in /etc/sshd_config(almeno non su FreeBSD / OpenSSH_5.8p2)
voretaq7

Ah, ho visto motd nella domanda. Questo mi imparerà a leggere correttamente la descrizione;)
chrskly

-2

Per me -q ha fatto il trucco e sono stato ancora in grado di lavorare con l'output salvato in un file.

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


Fantastico che funzioni per te. Tuttavia, questo non risponde alla domanda e dovrebbe essere al massimo un commento.
Gerald Schneider,

Questo è il problema, risponde alla domanda, mi sono sbarazzato di motd (banner) e ho avuto esattamente lo stesso problema indicato nella domanda
Zatarra,

L'unica parte della tua risposta relativa alla domanda è il -qparametro. Il resto è completamente estraneo ed è solo utile per te. Il parametro è già stato fornito come una risposta, quindi sentiti libero di votarlo se ti ha aiutato, ma questa "risposta" riceverà solo i voti negativi
Gerald Schneider,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.