Eu sempre gosto de usar caracteres de escape Ansi:
echo -e "Enter your password: \x1B[8m"
echo -e "\x1B[0m"
8m
torna o texto invisível e 0m
redefine o texto para "normal". O -e torna possível a fuga de Ansi.
A única ressalva é que você ainda pode copiar e colar o texto existente, portanto, provavelmente não deve usá-lo se realmente deseja segurança.
Ele apenas permite que as pessoas não vejam suas senhas quando você as digita. Apenas não deixe o computador ligado posteriormente. :)
NOTA:
O acima é independente da plataforma, desde que ele suporte sequências de escape do Ansi.
No entanto, para outra solução Unix, você pode simplesmente dizer read
para não ecoar os caracteres ...
printf "password: "
let pass $(read -s)
printf "\nhey everyone, the password the user just entered is $pass\n"