~/.bashrc
「何らかの目的で」セカンダリパスワードを要求するスクリプトを追加しましたが、これが私の目的に合致しました。しかし、一つの小さな問題があります。
scp
サーバーに接続すると、「stdin:is not a tty」でカスタムスクリプトを~/.bashrc
実行したときに発生するエラーが原因で失敗します。scp
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 ...
これにより、ダブルパスワードの確認が無効になります。
これはあなたが望むものではないかもしれません。
2つのパスワード戦略に固執する場合、残りの唯一のオプションは、ファイルが提供されているscp
プラットフォームに従ってログインして(そして2回識別した後)ファイルを抽出することです。