【问题标题】:Python: Execute scp, stdin for password not workingPython:执行 scp,密码的标准输入不起作用
【发布时间】:2011-05-07 20:18:11
【问题描述】:

我正在尝试以下方法

from subprocess import Popen, PIPE
Popen(["scp", "-B","user@url:file", "."], stdin=PIPE, shell=False).communicate(input="password")

但我仍然收到密码提示,并且没有发送密码。 我知道我可以将 scp 与键一起使用,但这不是我需要的。

有什么帮助吗?

【问题讨论】:

标签: python passwords stdin popen scp


【解决方案1】:

scp 直接与终端交互,而不是从 STDIN 读取,不能通过管道传递密码,这对 scp 来说是安全问题,也是一样的对于 sftp,ssh。

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

echo "password" | scp me@localhost:test .

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2018-09-26
      • 2011-07-12
      • 2019-02-15
      • 2014-09-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-14
      • 2019-06-23
      相关资源
      最近更新 更多