セキュアにするには自動化抑止?

リモートホストの操作を含む簡単なスクリプトを組んでるわけですが(bashで300ステップ程度)。
昔のtelnetとかftpってパスワードを標準入力からとるので

ID
pass
cd /foo
get bar

とかいうファイルを作ってリダイレクトで流し込むということが出来ました。勿論コレ自体セキュアな手法とは言いがたい代物であるわけですが、最近のsudoやsshではどうやらこれが封じられている模様。ソースを見る限りパスワード入力のみ別に口を開いているようですね。プログラムの途中で一時的にディスクリプタを生成するためリダイレクトもパイプも使えないです*1
セキュアなプログラムにするために色々考えているものですね。
最もこれのせいでsshでのログインが自動化できないかと言うとそうでもなく、sshで認証無しログイン出来るようにする方法があるのはご存知の通りですしセキュリティ面でそれが許されない場合でもexpectのような対話マクロスクリプトを使えば何とでもなるのですが…。
蛇足ですがexpectのManpageにはこんなのがかかれていたり。

Expect にできることの例をいくつか挙げておく: 

・電話代を払わずにログインできるようにコンピュータからあなたに電話を掛け直させる。 
・ゲーム(例えば rogue)を始める時に、最適なパラメタがもらえなかった場合最適なパラメタがもらえるまで何度でもリスタートを行ない、その後制御を人間に移す。fsckを走らせた時に現れる質問に、前もって決めておいた方針に従って、 "yes", "no", "手入力"を切替えて、返答する。 
・他のネットワークや BBS(例えばMCI Mail, CompuServe)に接続した時に自動的にメールの取り込み、発信を行なう。 
・環境変数、カレントディレクトリ、その他の情報を、rlogin, telnet, tip, su, 
 chgrp などを行なった先へ持っていく。 
これらの処理をシェルが行なえない理由はたくさんある (やってみればわかるだろう)。全部 Expect ならできる。 

何か明らかに間違った用途に使われている気が^^;

*1:sudoはオプションでパスワードを標準入力から入れられるため回避可能。sshは無理