1
ホストにsshするために使用されるサブプロセス。私のローカルマシンからlinuxホストにSSH、rootユーザーにsudo
ここでは、ユーザーとしてsshを実行してコマンドを実行するためのコードスニペットを示します。 (のようなもの)
sshProcess = subprocess.Popen(['ssh', hostname], stdin=subprocess.PIPE, stdout = subprocess.PIPE, universal_newlines=True, bufsize=0)
sshProcess.stdin.write("hostname\n")
sshProcess.stdin.write("ls -ldr %s \n"%path)
sshProcess.stdin.write("pwd \n")
sshProcess.stdin.close()
for line in sshProcess.stdout:
if line == "END\n":
break
print(line,end="")
ないターミナルしかし、私は
sshProcess.stdin.write("sudo su - serviceuser \n")
から
私はエラー トレースバック(最新の呼び出しの最後)の下に取得しています以前にそれを試してみましたが、 を動作しませんでした:ライン、 ファイル "ssh.py" 11、in sshProcess = subprocess.Popen(['ssh -t'、hostname]、stdin = subprocess.PIPE、stdout = subprocess.PIPE、universal_newlines = True、bufsize = 0) ファイル "/ usr/lib/python2 .7/subprocess.py "、l伊根711、__init__ errread、errwrite) ファイル "/usr/lib/python2.7/subprocess.py" で、ライン1343、_execute_child レイズchild_exception OSErrorの中:私は追加[ERRNO 2]いいえそのようなファイルやディレクトリ –
Springhills
shell = PopenではTrueですが他のエラーが発生しています sshProcess = subprocess.Popen(['ssh -t'、hostname]、shell = True、stdin = subprocess.PIPE、stdout = subprocess.PIPE、universal_newlines = True、bufsize = 0) – Springhills
使用法:ssh [-1246AaCfGgKkMNnqsTtVvXxYy] [-bバインドアドレス] [-c暗号_spec] [-D [bind_address:]ポート] [-E log_file] [-eエスケープ文字] [-F configfile] [-I [-L address] [-l login_name] [-m mac_spec][-j [user @] host [:port]] [-S ctl_cmd] [-oオプション] [-pオプション] [-q query_option] [-R address] [-S ctl_path] [-W host:port] [-w local_tun [:remote_tun]] [ user @] hostname [command] – Springhills