を実行するために、TTYを持っている必要があり、私はルビーを使用してSSH接続経由でsudoコマンドを実行しているとの問題を抱えている:ネット:: SSH:あなたはsudoの
require 'net/ssh'
Net::SSH.start("myserver.com", "login", :password => "pass") do |ssh|
test = ssh.exec! 'sudo -iu admin /folder/script.sh'
puts test
私は次の参照結果:「sudoを:申し訳ありませんが、あなたsudoをする\ n」
を実行するための端末を持っている。しかし、私は、このコマンドを実行するときにする必要があります。パスワード 『パス』とサーバのmyserver.com」に接続してPUTTYに
sudo -iu admin /folder/script.sh
を。この場合、sudoコマンドは正常に実行され、完了します。
私はこのsudoコマンドをTTYのRubyスクリプトでどのように実行できますか?
['request_pty'](https://net-ssh.github.io/ssh/v2/api/classes/Net/)で望むなら、ターミナルをリクエストできます。 SSH/Connection/Channel.html#M000055) – tadman
これは正確な複製ではないと思います。その質問では、SSHがハングします。この質問では、「sudoを実行するにはTTYが必要です」という結果が出ます。 –