2017-06-30 17 views
0

私はremote-execパッケージとnode-sshパッケージを試しましたが、どちらも同じような結果になっています。ノードJSでsshを使ってsudoコマンドを実行するには?

var rexec = require('remote-exec'); 

var connection_options = { 
     port: 22, 
     username: 'user', 
     privateKey: require('fs').readFileSync('privateKey/file.pem'), 
     passphrase:''}; 

var hosts = [ 
    '54.xxx.xxx.xxx' 
]; 

var cmds = [ 
    'sudo adduser testuser' 
]; 

rexec(hosts, cmds, connection_options, function(err){ 

    if (err) { 
     console.log(err); 
    } else { 
     console.log('Great Success!!'); 
    } 
}); 

それはエラーを返します:

[エラー:554.xxx.xxx.xxxます。sudo adduserユーザtestuserを[終了1]]が

sudoを:申し訳ありませんが、あなたが端末を持っている必要がありますsudoを実行するには

ノードjsを使用してsudoコマンドを実行する方法を教えてください。

+0

おそらく、この答えは助けるべきである - 'connection_optionsで[https://stackoverflow.com/a/5062718/7372769](https://stackoverflow.com/a/5062718/7372769) – Ayush

+0

'' pty:true'を設定しなければならないかもしれませんが、サーバ上の 'sudo'がパスワードを必要とする場合は、それにもかかわらず失敗する可能性があります。 – robertklep

+0

すぐにお返事ありがとうございます、ついに私は解決策を見つけました。 –

答えて

0

以下のコメントは、/ etc/sudoersファイルにあります。

#Defaults requiretty

関連する問題