私はssh_config
ローカルLAN上のマシンとVM内のマシンに接続するには:
Host 172.16.*.*
StrictHostKeyChecking no
UserKnownHostsFile /dev/null
ただし、接続するたびに警告が表示されます。
$ 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':
OpenSSH 7.1を使用しています。ローカルLANの各接続で警告を無効にするにはどうすればよいですか?
SSH構成ファイルに以下を追加します。
LogLevel ERROR
または、-o LogLevel=ERROR
をsshコマンド自体に追加します。
これを行うには、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
レベルにあります。
つまり、-qフラグを指定してsshを実行し、警告/診断を無効にします(エラーは無効にしません)。