ローカルLANで「永続的に追加された<host>…」警告を無効にします


24

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の各接続で警告を無効にするにはどうすればよいですか?

回答:


29

SSH構成ファイルに次を追加します。

LogLevel ERROR

または-o LogLevel=ERROR、sshコマンド自体に追加します。


Debianの上のSSHの設定ファイルがある/etc/ssh/ssh_config(ない/etc/ssh/sshd_config!)
rubo77

14

これを行うには、ssh構成をデフォルトのログレベル「info」から「error」(次のレベル)に変更する必要があります。

ssh_configマニュアルページを参照してください。

LogLevel
ssh(1)からのメッセージを記録するときに使用される冗長レベルを提供します。可能な値は以下のとおりです。QUIETFATALERRORINFOVERBOSEDEBUGDEBUG1DEBUG2、とDEBUG3。デフォルトはINFOです。DEBUGDEBUG1同等です。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

つまり、-qフラグを指定してsshを実行し、警告/診断を無効にします(エラーは無効にしません)。


7
-qあなたがおそらく交渉した以上のことをするでしょう。非常に有用なエラーメッセージを抑制します。例:ssh -q not-existing-host単一のエラーメッセージを出力しません。このコマンドは黙って失敗します。対照的に、ssh -o LogLevel=error not-existing-host説明を出力します:ssh:ホスト名を解決できませんでしたnot-existing-host:名前またはサービスが不明
です-hagello
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.