Wyłącz ostrzeżenie „Trwale dodane <host>…” w lokalnej sieci LAN

26

Mam następujące elementy, ssh_configaby połączyć się z komputerami w mojej lokalnej sieci LAN i komputerami na maszynie wirtualnej:

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

Jednak po każdym połączeniu generuje ostrzeżenie:

$ 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': 

Używam OpenSSH 7.1. Jak wyłączyć ostrzeżenie przy każdym połączeniu z lokalną siecią LAN?

jww
źródło

Odpowiedzi:

32

Dołącz następujące elementy do pliku konfiguracyjnego SSH:

LogLevel ERROR

Lub dołącz -o LogLevel=ERRORdo samego polecenia ssh.

TakingItCasual
źródło
Plik konfiguracyjny SSH na Debianie to /etc/ssh/ssh_config(nie /etc/ssh/sshd_config!)
rubo77,
16

Powinieneś być w stanie to zrobić, zmieniając konfigurację ssh z domyślnego poziomu dziennika „info” na „error” (następny poziom wyżej).

Zobacz ssh_configstronę podręcznika:

LogLevel
Podaje poziom szczegółowości używany podczas rejestrowania wiadomości z ssh (1). Możliwe wartości to: QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2, i DEBUG3. Domyślnie jest to INFO. DEBUGi DEBUG1są równoważne. DEBUG2i DEBUG3każdy z nich określa wyższy poziom pełnych wyników.

Kod źródłowy sshopowiada historię:

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

wraz z definicją log_init:

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

tzn. wszystkie komunikaty „log” przechodzą do standardowego błędu i można dostosować tylko liczbę otrzymanych. Ten, którego nie chcesz, dzieje się na INFOpoziomie.

Thomas Dickey
źródło
7

Krótko mówiąc, uruchom ssh z flagą -q, aby wyłączyć ostrzeżenia / diagnostykę (ale nie błędy).

JJC
źródło
7
-qzrobi więcej, niż się spodziewałeś. Pomija bardzo przydatne komunikaty o błędach. Przykład: ssh -q not-existing-hostnie wydrukuje pojedynczego komunikatu o błędzie. To polecenie po prostu nie działa. W przeciwieństwie do tego, ssh -o LogLevel=error not-existing-hostwypisze wyjaśnienie: ssh: Nie można rozwiązać nazwy hosta nie istniejący-host: Nazwa lub usługa nie znany
hagello