Fabric运行不使用密码

时间:2015-08-13 09:54:25

标签: fabric scp

我想使用fabric将 remote1 主机中的文件复制到 remote2 主机。 我正在尝试将 remote2 的密码传递给Fabric运行命令,但它仍然提示输入 remote2 密码。

我的代码有什么问题吗?

run('echo "pass123" | scp my.tar root@1.2.3.4:')
run('"pass123" | scp my.tar root@1.2.3.4:')

修改 在我们的产品和交错环境中,不支持密钥身份验证。

1 个答案:

答案 0 :(得分:1)

OpenSSH实用程序(包括scp)不接受命令行或标准输入上的密码。当他们读取密码时,他们会明确地打开进程的TTY并从中读取。

基本上有四种方法可供选择:

  1. 使用基于密钥的身份验证而不是密码。

  2. 使用sshpassexpect等程序通过PTY将密码提供给scp

  3. Download the OpenSSH source code并修改软件以便按您的方式工作。

  4. 找到一种方法来传输这些不涉及使用OpenSSH客户端软件的文件。