2017-05-11 12 views
0

私はこの問題に関して私が見つけたすべてのスレッドを読みましたが、私の問題の解決策はまだ見つかりませんでした。BASH - 変数にSSH出力を割り当てよう

まず、私は現在、非常に制限の厳しい環境でこの作業をしようとしていますので、設定やその他の管理タイプの機能を使いこなすオプションはありません。

コード:

ssh -t [email protected] "sudo -u user hadoop fs -ls /" 

が実行されている、これは私が探しています出力を返し、しかし次の行がハングアップし、出力を変数に割り当てることはありません。私が試みた

output=$(ssh -t [email protected] "sudo -u user hadoop fs -ls") 

私が見つけることができるこのラインのあらゆるバリエーション。変数のエコーを行うと、空行が吐き出されます。そう、私は仕事にこの一行を得ることができない場合、私は本当にすべての危機管理計画を持っていない

sudo: no tty present and no askpass program specified 
sudo: pam_authenticate: Conversation error 

:-tオプションの理由は、私はの線に沿ってエラーを取得して、それなしbecuaseされますもしあなたが助けることができれば、それは非常に高く評価されるでしょう。

+0

[mcve] - ieをビルドすることはできますか?他の人が同じ問題を見るために自分自身を実行することができるコマンドを考え出す? –

+0

リモートrootユーザーのパスワードを尋ねられますか?パスワードの代わりにプライベートキーを作成しようとしましたか? –

+0

@LouisLoudogTrottier、...うまくいけば - それは 'sudo'ではなく' ssh'で、そのようなプロンプトを出す(そうでなければ救済する)なら、SSHのキーレベルの認証はあまり役に立ちません。 –

答えて

1

これをショットしてください。私は、このコマンドは、sshコマンドを対話的にパスワード以外を渡すためにsshpassを使用している行

output=$(sshpass -f <(printf '%s\n' $password) ssh user:@host "sudo ls"); 
echo $output; 

にそれを少なくとも10回を行うことができました。

関連する問題