15

У меня есть следующее в моем 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. Как отключить предупреждение при каждом подключении к локальной сети?

3 ответа3

12

Вы должны быть в состоянии сделать это, изменив конфигурацию 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)
{

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

12

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

LogLevel ERROR

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

6

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .