scp
を使用して(セキュアコピー)コマンドを実行しようとしていsubprocess.Popen
ます。ログインするには、パスワードを送信する必要があります。
from subprocess import Popen, PIPE
proc = Popen(['scp', "user@10.0.1.12:/foo/bar/somefile.txt", "."], stdin = PIPE)
proc.stdin.write(b'mypassword')
proc.stdin.flush()
これはすぐにエラーを返します:
user@10.0.1.12's password:
Permission denied, please try again.
パスワードは正しいと確信しています。scp
シェルを手動で呼び出すことで簡単に確認できます。では、なぜこれが機能しないのですか?
subprocess.Popen
これに似た質問がたくさんあることに注意してください。自動SSHまたはFTPログインのパスワードを尋ねて送信します。
LinuxでPythonスクリプトからユーザーパスワードを設定するにはどうすればよいですか?
サブプロセスを使用してパスワードを送信する
Python 3を使用しているため、これらの質問に対する回答が機能しないか、適用されません。