.bashrc 自定义辅助密码和 SCP 不起作用,(SSH 辅助密码)

.bashrc 自定义辅助密码和 SCP 不起作用,(SSH 辅助密码)

出于“某种目的”,我在 中添加了一个脚本~/.bashrc来提示输入辅助密码,它满足了我的目的。但是,只有一个小问题。

当我scp连接到服务器时,由于~/.bashrc 我在执行 a 时遇到的错误scp是“stdin:不是 tty”中的自定义脚本而失败

sh second_pass.sh~/.bashrc

内容second_pass.sh

trapeze ()  {
    printf "Trying to kill me!!" }

trap trapeze SIGINT

while true; do echo "Please enter the password:" read -s password

if [[ -z "$password" ]] ; then
    continue ; fi

hash="$(echo -n "$password" | md5sum )" password=`echo "$hash" | awk '{print $1}'`

if [ "$password" == "a359c98e8c05feaf91bdb8cfc7dd6b" ] then
    exit ; else
    echo "WRONG!!!" fi done

结果是,当我这样做scp

stdin: is not a tty
Please enter the password:

然后scp失败。

我想使用scp& 并将密码提示脚本保留在我的~/.bashrc.
我怎样才能实现它?

答案1

尝试更换

 while true ; do echo ...

经过

 while tty -s ; do echo ...

这将禁用双重密码检查。

这可能不是你想要的。

现在,如果您坚持双密码策略,那么剩下的唯一选择就是在scp登录(并两次识别)后提取文件,这取决于文件来自的平台。

相关内容