Отключить предупреждение «Постоянно добавленный <хост>…» в локальной сети

25

У меня есть следующее ssh_configдля подключения к машинам в локальной сети и машинам в виртуальной машине:

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

Однако при каждом подключении выдается предупреждение:

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

Я использую OpenSSH 7.1. Как отключить предупреждение при каждом подключении к локальной сети?

jww
источник

Ответы:

30

Добавьте следующее в ваш конфигурационный файл SSH:

LogLevel ERROR

Или добавьте -o LogLevel=ERRORк самой команде ssh.

TakingItCasual
источник
Конфигурационный файл SSH в Debian /etc/ssh/ssh_config(не /etc/ssh/sshd_config!)
rubo77
15

Вы должны быть в состоянии сделать это, изменив конфигурацию ssh со стандартного уровня журнала «info» на «error» (следующий уровень вверх).

Обратитесь к ssh_configстранице руководства:

LogLevel
Дает уровень многословия, который используется при регистрации сообщений от ssh (1). Возможные значения: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, и DEBUG3. По умолчанию это INFO. DEBUGи DEBUG1эквивалентны. DEBUG2и DEBUG3каждый из них определяет более высокие уровни подробного вывода.

Исходный код для sshрассказывает историю:

    /*
     * 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);

наряду с определением log_init:

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

т. е. все сообщения «журнала» идут со стандартной ошибкой, и вы можете только отрегулировать, сколько вы получаете. Тот, который вы не хотите, оказывается на INFOуровне.

Томас Дики
источник
7

Короче говоря, запустите ssh с флагом -q, чтобы отключить предупреждения / диагностику (но не ошибки).

JJC
источник
7
-qсделает больше, чем вы, возможно, ожидали. Подавляет очень полезные сообщения об ошибках. Пример: ssh -q not-existing-hostне напечатает ни одного сообщения об ошибке. Эта команда просто не работает тихо. Напротив, ssh -o LogLevel=error not-existing-hostнапечатает объяснение: ssh: Не удалось разрешить имя хоста not
-isting