+-
python – 使用subprocess.Popen通过SSH或SCP发送密码
我正在尝试使用subprocess.Popen运行 scp(安全复制)命令.登录要求我发送密码:

from subprocess import Popen, PIPE

proc = Popen(['scp', "[email protected]:/foo/bar/somefile.txt", "."], stdin = PIPE)
proc.stdin.write(b'mypassword')
proc.stdin.flush()

这会立即返回错误:

[email protected]'s password:
Permission denied, please try again.

我确定密码是正确的.我通过在shell上手动调用scp轻松验证它.那么为什么这不起作用呢?

注意,有很多类似的问题,询问subprocess.Popen并为自动SSH或FTP登录发送密码:

How can I set a users password in linux from a python script?
Use subprocess to send a password

这些问题的答案不起作用和/或不适用,因为我使用的是Python 3.

最佳答案
您链接的第二个答案表明您使用Pexpect(这通常是与期望输入的命令行程序交互的正确方法).它有一个 fork适用于你可以使用的python3.
点击查看更多相关文章

转载注明原文:python – 使用subprocess.Popen通过SSH或SCP发送密码 - 乐贴网