出于“某种目的”,我在 中添加了一个脚本~/.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
登录(并两次识别)后提取文件,这取决于文件来自的平台。