防止 ssh-keyscan 生成输出

防止 ssh-keyscan 生成输出

问题: 当运行ssh-keyscan命令时计划任务ssh-keyscan它通过电子邮件向我发送每天的输出。该电子邮件仅包含以下内容。

# <hostname> SSH-2.0-OpenSSH_5.3

我的(简化的)cron 作业:

host=`uname -n`
SSHKey=`ssh-keyscan $host`
echo $SSHKey >> /root/.ssh/known_hosts

我的问题: 如何防止ssh-keyscan向 shell 写入任何内容?

答案1

重定向stderr/dev/null

host=`uname -n`
SSHKey=`ssh-keyscan $host 2> /dev/null`
echo $SSHKey >> /root/.ssh/known_hosts

答案2

一个老问题,我想知道为什么没有人建议以下变体:

(ssh-keyscan $host >>/root/.ssh/known_hosts) 2> >(grep -vE '^#')

这只会抑制以 开头的 stderr 输出#,即不会抑制真正的错误消息。

相关内容