Desative o aviso "Permanentemente adicionado <host>…" na LAN local

24

Tenho o seguinte no meu ssh_configpara conectar a máquinas na minha LAN local e máquinas em uma VM:

Host 172.16.*.*
StrictHostKeyChecking no
UserKnownHostsFile /dev/null

No entanto, cada vez que eu conecto, ele produz um aviso:

$ ssh [email protected]
Warning: Permanently added '172.16.4.11' (ECDSA) to the list of known hosts.
Enter passphrase for key '/Users/jdoe/.ssh/id_ed25519': 

Estou usando o OpenSSH 7.1. Como desabilito o aviso em cada conexão da LAN local?

jww
fonte

Respostas:

29

Anexe o seguinte ao seu arquivo de configuração SSH:

LogLevel ERROR

Ou acrescente -o LogLevel=ERRORao próprio comando ssh.

TakingItCasual
fonte
O arquivo SSH configuração no Debian é /etc/ssh/ssh_config(não /etc/ssh/sshd_config!)
rubo77
14

Você deve conseguir fazer isso alterando a configuração do ssh do nível de log padrão de "info" para "error" (o próximo nível acima).

Consulte a ssh_configpágina do manual:

LogLevel
Fornece o nível de verbosidade usado ao registrar mensagens do ssh (1). Os valores possíveis são: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, e DEBUG3. O padrão é INFO. DEBUGe DEBUG1são equivalentes. DEBUG2e DEBUG3cada um especifica níveis mais altos de saída detalhada.

O código fonte para sshconta a história:

    /*
     * Initialize "log" output.  Since we are the client all output
     * actually goes to stderr.
     */
    log_init(av[0], options.log_level == -1 ? SYSLOG_LEVEL_INFO : options.log_level,
        SYSLOG_FACILITY_USER, 1);

juntamente com a definição de log_init:

void
log_init(char *av0, LogLevel level, SyslogFacility facility, int on_stderr)
{

ou seja, todas as mensagens de "log" vão para o erro padrão e você pode ajustar apenas quantas você recebe. O que você não deseja está no INFOnível.

Thomas Dickey
fonte
7

Em resumo, execute ssh com o sinalizador -q para desativar avisos / diagnósticos (mas não erros).

JJC
fonte
7
-qfará mais do que você provavelmente esperava. Suprime mensagens de erro muito úteis. Exemplo: ssh -q not-existing-hostnão imprimirá uma única mensagem de erro. Este comando apenas falha silenciosamente. Em contraste, ssh -o LogLevel=error not-existing-hostserá impressa uma explicação: ssh: Não foi possível resolver o nome do host não-existente-host: Nome ou serviço não conhecida
hagello