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

14

Eu li Interromper o login ssh de imprimir motd a partir do cliente? , no entanto, minha situação é um pouco diferente:

  • Quero manter os servidores Banner / path / to / sometxt
  • Gostaria de passar uma opção sob condições específicas para que o Banner não seja impresso (por exemplo ssh -o "PrintBanner=No" someserver).

Qualquer ideia?

Comunidade
fonte

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.

voretaq7
fonte
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).
user3640161
fonte
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

gray13
fonte
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
Sashi Kant
fonte
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 .

Michael Hampton
fonte
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.;-)

todd_dsm
fonte
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

Pik Master
fonte
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.

Aethalides
fonte
-2

Basta chamar um shell, que deve suprimir o banner.

ssh [email protected] /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.

chrskly
fonte
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

Zatarra
fonte
Ó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