如何防止scpssh试图读取标准输入法

问题描述 投票:0回答:1

我正在使用授权密钥将一个文件从一个服务器传到另一个服务器,然而,在密钥不再有效的情况下,脚本被不断地要求输入密码。

我已经尝试过

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的说明。

shell unix ksh scp
1个回答
1
投票

但我如何才能创建一个空白的输入流,如果脚本是交互式运行的,它将不会提示用户?

与其这样,不如禁用密码验证。

scp -o BatchMode=yes -o PasswordAuthentication=no -o PubkeyAuthentication=yes ... 

1
投票

这可能也会有用

scp ${user}@${host}:/tmp ./file1 /dev/tty0 > /dev/null
© www.soinside.com 2019 - 2024. All rights reserved.