Python:执行scp,stdin表示密码不起作用

Python:执行scp,stdin表示密码不起作用,python,passwords,stdin,popen,scp,Python,Passwords,Stdin,Popen,Scp,我正在尝试下面的方法 from subprocess import Popen, PIPE Popen(["scp", "-B","user@url:file", "."], stdin=PIPE, shell=False).communicate(input="password") 但是我仍然收到密码提示,并且没有发送密码。 我知道我可以使用带钥匙的scp,但这不是我需要的 有什么帮助吗?scp直接与终端交互,而不是从STDIN读取,您不能通过管道传递密码,这对scp和sftp、ssh来说都

我正在尝试下面的方法

from subprocess import Popen, PIPE
Popen(["scp", "-B","user@url:file", "."], stdin=PIPE, shell=False).communicate(input="password")
但是我仍然收到密码提示,并且没有发送密码。 我知道我可以使用带钥匙的scp,但这不是我需要的


有什么帮助吗?

scp直接与终端交互,而不是从STDIN读取,您不能通过管道传递密码,这对scp和sftp、ssh来说都是安全问题

您可以像这样在终端中尝试(但它不会工作):


正如其他人所说,scp(和ssh)直接从控制台而不是stdin读取密码,因此使用subprocess发送密码将不起作用。您可以改为使用-有关如何执行此操作,请参阅文档和大量示例。

回答此相关问题可能会有所帮助:您可能会对此问题感兴趣:
echo "password" | scp me@localhost:test .