sshのオプションを使用して、-t
tty 割り当てを強制してみてください。
ssh -t root@10.3.2.0 'echo -n Password:;
read -s password;
echo;
echo $password;'
編集: 提案された解決策の説明
ログインセッションを実行せず、代わりにコマンドのみを実行する場合、デフォルトでは、SSH は実行中のプロセスに疑似端末デバイスを割り当てません。この動作はすべてがバグというわけではありませんが、設計によって意図的に選択されています。
このようにして、異なるマシン間でバイナリ データを解釈せずに渡すことができます。たぶん次のようなもの:
ssh whoever@wherever 'cat remote_file' | local_program
このように 2 台のマシン間でデータを渡すことは、間にあるターミナル ドライバーによってデータがフィルター処理されている場合、ほとんど不可能です。気にしなければならない大量のエスケープ シーケンスを考えてみてください。
端末が割り当てられていないと、ユーザー入力を隠す方法はありません。stty something
端末がまったくないため、試みは失敗します。
ログインセッションで実行されていない場合でも ssh に疑似端末を割り当てるには、-t
パラメーターを渡して tty 割り当てを強制する必要があります。