我正在使用授权密钥将文件从一台服务器传递到另一台服务器。 但是,在密钥不再有效的事件中,将要求脚本输入密码。
我试过了
scp ${user}@$host}:/tmp ./file1 </dev/null
但我仍然得到提示。 唯一有效的时间是如果我像这样按计划运行它:
echo "scp ${user}@$host}:/tmp ./file1" | at now
在这种情况下,如果密钥不再有效,它将正确出错。
但是,如何创建一个空白输入流,如果脚本以交互方式运行,它不会提示用户?
@David:
echo "" | scp ${user}@${host}:/tmp ./file1 </dev/null
没有帮助,同样的响应,所以它可能需要有一个 stty 命令来将 tty 输入归零,我现在猜,根据 Kenster 的说明。
但是我如何创建一个空白的输入流,如果脚本以交互方式运行,它不会提示用户?
而不是禁用密码身份验证。
scp -o BatchMode=yes -o PasswordAuthentication=no -o PubkeyAuthentication=yes ...
这可能也有效
scp ${user}@${host}:/tmp ./file1 /dev/tty0 > /dev/null