로컬 LAN에서“영구적으로 추가 된 <host>…”경고 비활성화


26

ssh_config로컬 LAN의 시스템과 VM의 시스템에 연결 하려면 다음 이 있습니다.

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을 사용하고 있습니다. 로컬 LAN에 대한 각 연결에서 경고를 비활성화하려면 어떻게합니까?

답변:


32

SSH 구성 파일에 다음을 추가하십시오.

LogLevel ERROR

또는 -o LogLevel=ERRORssh 명령 자체에 추가하십시오 .


데비안의 SSH 설정 파일은 /etc/ssh/ssh_config( /etc/ssh/sshd_config!!)
rubo77

16

ssh 구성을 기본 로그 레벨 "info"에서 "error"(다음 레벨 업)로 변경하여이를 수행 할 수 있어야합니다.

참고하여주십시오 ssh_config매뉴얼 페이지 :

LogLevel
ssh (1)에서 메시지를 기록 할 때 사용되는 상세 수준을 제공합니다. 가능한 값은 : QUIET, FATAL, ERROR, INFO, VERBOSE, DEBUG, DEBUG1, DEBUG2,와 DEBUG3. 기본값은 INFO입니다. DEBUG그리고 DEBUG1동등합니다. DEBUG2DEBUG3각각의 상세한 출력의 높은 수준을 지정합니다.

의 소스 코드 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

간단히 말해서 -q 플래그와 함께 ssh를 실행하여 경고 / 진단을 비활성화하십시오 (오류는 아님).


7
-q아마 당신이 기대했던 것보다 더 많은 일을 할 것입니다. 매우 유용한 오류 메시지를 억제합니다. 예 : ssh -q not-existing-host단일 오류 메시지를 인쇄하지 않습니다. 이 명령은 자동으로 실패합니다. 대조적으로, ssh -o LogLevel=error not-existing-host설명을 인쇄합니다 : ssh : 존재하지 않는 호스트 이름을 해결할 수 없습니다-호스트 : 이름 또는 서비스를 알 수 없음
hagello
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.