如何防止 scp/ssh 尝试读取标准输入
how to prevent scp/ssh from trying to read standard input
我正在使用授权密钥将文件从一台服务器传递到另一台服务器。
但是,如果密钥不再有效,则会不断要求脚本输入密码。
我试过了
scp ${user}@$host}:/tmp ./file1 </dev/null
但我仍然收到提示。
唯一可行的情况是我 运行 像这样不按计划进行:
echo "scp ${user}@$host}:/tmp ./file1" | at now
在这种情况下,如果密钥不再有效,它将正确出错。
但是如果脚本是 运行 交互的,我如何创建一个空白输入流,它不会提示用户?
@大卫:
echo "" | scp ${user}@${host}:/tmp ./file1 </dev/null
没有帮助,相同的响应,所以它可能需要一个 stty 命令来将 tty 输入归零,我现在猜测,根据 Kenster 的笔记。
But how can I create a blank input stream, that will not be prompting the user if the script is run interactively?
而不是禁用密码验证。
scp -o BatchMode=yes -o PasswordAuthentication=no -o PubkeyAuthentication=yes ...
这也可以
scp ${user}@${host}:/tmp ./file1 /dev/tty0 > /dev/null
我正在使用授权密钥将文件从一台服务器传递到另一台服务器。 但是,如果密钥不再有效,则会不断要求脚本输入密码。
我试过了
scp ${user}@$host}:/tmp ./file1 </dev/null
但我仍然收到提示。 唯一可行的情况是我 运行 像这样不按计划进行:
echo "scp ${user}@$host}:/tmp ./file1" | at now
在这种情况下,如果密钥不再有效,它将正确出错。
但是如果脚本是 运行 交互的,我如何创建一个空白输入流,它不会提示用户?
@大卫:
echo "" | scp ${user}@${host}:/tmp ./file1 </dev/null
没有帮助,相同的响应,所以它可能需要一个 stty 命令来将 tty 输入归零,我现在猜测,根据 Kenster 的笔记。
But how can I create a blank input stream, that will not be prompting the user if the script is run interactively?
而不是禁用密码验证。
scp -o BatchMode=yes -o PasswordAuthentication=no -o PubkeyAuthentication=yes ...
这也可以
scp ${user}@${host}:/tmp ./file1 /dev/tty0 > /dev/null