Opção de cliente SSH para suprimir banners do servidor?


Respostas:


-1

Você não pode. (Pelo menos não com o estoque OpenSSH)

O banner do servidor é enviado pelo servidor antes que a autenticação ocorra. A questão é geralmente conter um aviso legal ou uma mensagem do tipo "Se você não está autorizado a desconectar AGORA" ou outras coisas críticas que você não deseja que o usuário remoto possa suprimir / ignorar.

Se você realmente deseja se livrar disso, precisará hackear e compilar sua própria versão personalizada do cliente SSH.


15
Esta é uma informação antiga e não é mais verdadeira em distribuições comuns. As respostas abaixo para usar -qou -o LogLevel=errorgrande trabalho agora :-)
Dogsbody

28

Existe uma LogLevelopção:

Silencia o banner, mas você ainda pode receber erros:

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

Não funcionou com o cliente OpenSSH 6.9 - talvez as informações da versão sejam úteis?
Zayne S Halsall

Funciona com OpenSSH_6.6.1p1 Ubuntu-2ubuntu2.3, OpenSSL 1.0.1f 06 de janeiro de 2014
Kulbir Saini

6

Eu testei, acho que você pode usar -qno comando ssh. O parâmetro -q foi significa modo silencioso . Isso faz com que a maioria das mensagens de aviso e diagnóstico sejam suprimidas, por exemplo,

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

ou

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

Espero que isso possa ajudar outras pessoas


q não fez trabalho de um cliente Fedora 22 a Centos 6 e Suse 2.6 (cliente foi OpenSSH 6.9 Talvez esta resposta seria upvoted se referenciada versão ssh específico.?
Zayne S Halsall

5

Atualize ~ / .ssh / config com o seguinte para suprimir banner

Host *
    LogLevel error

Acredito que a linha "Host *" seja redundante ou incorreta. De qualquer forma, obtenho o efeito desejado sem ele. Entretanto, deve-se notar que o OP queria obter o efeito sob certas condições programáticas; nesse caso, a opção de linha de comando listada acima é a melhor solução.
UncaAlby

4

Você deve poder definir um diferente Banner(para nenhum) dentro de um Matchbloco.

Por exemplo:

Match Address 192.0.2.0/24
        Banner none

Mas isso deve ser feito no lado do servidor , com base em condições específicas. Você não pode fazer isso do lado do cliente .


4

Parece que você está procurando por -q :

Modo silencioso. Faz com que a maioria das mensagens de aviso e diagnóstico seja suprimida.

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

Com -q

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

Agradável e tranquilo. O banner ainda está configurado, mas você não é incomodado por ele.

Em outra nota: não use banners. É melhor não confirmar ou negar nada. Isso não vai ajudá-lo com as pessoas com quem você não estava preocupado e as pessoas com quem você está preocupado rirão ao passar por isso.;-)


0

Para mim, -o LogLevel=errorfoi melhor que -q, porque o último suprime as informações importantes sobre erros (que você pode obter apenas via código de saída).

Compare isto (sem opções): [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

com isso (quieto) [root@myserver804 myuser1]# ssh -q targetserver1; echo "exit code=$?" exit code=255

com isso (apenas erros de log) [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

Portanto, a conclusão é: se você ainda estiver interessado em erros relevantes, use -o LogLevel=error


0

Nem os -qou os -oLogLevel=errortrabalhos.

O que funciona é suprimir STDERR

ssh hostname command 2>/dev/null

A desvantagem, no entanto, é que a supressão do STDERR é aplicada a todo o comando e não apenas ao programa SSH.


-2

Basta chamar um shell, que deve suprimir o banner.

ssh you@someplace.com /bin/bash

Note que, para mim, pelo menos, meu $ PS1 não é definido, então parece que está travando. Eu tive que digitar alguns comandos para verificar se estava funcionando.


1
Isso não vai banners suprimir mostradas pela Banneropção /etc/sshd_config(pelo menos isso não acontece no FreeBSD / OpenSSH_5.8p2)
voretaq7

Ah, eu vi motd na pergunta. Isso aprenderá me a ler a descrição adequada;)
chrskly

-2

Para mim, o q fez o truque e eu ainda era capaz de trabalhar com a saída salva em um arquivo.

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


Ótimo que funciona para você. No entanto, isso não responde à pergunta e deve ser um comentário no máximo.
Gerald Schneider

Esse é o problema, ele faz responder à pergunta, eu me livrei de motd (banner) Eu tinha exatamente o mesmo problema como referido na pergunta
Zatarra

A única parte da sua resposta relacionada à pergunta é o -qparâmetro O resto é completamente independente e só é útil para você. O parâmetro já foi dado como uma resposta, tão à vontade para upvote-lo se ele te ajudou, mas esta "resposta" só receberá downvotes
Gerald Schneider
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.