【问题标题】:Executing SCP in GNU Parallel在 GNU Parallel 中执行 SCP
【发布时间】:2013-02-08 20:08:58
【问题描述】:

我需要并行运行一些命令,包括 SCP。为此,我使用 GNU Parallel。问题是我不知道如何将密码传递给 SCP。这是一条类似于我正在运行的行:

ls 2011_* | parallel scp {} user@domain

如果ls找到3个文件,scp同时询问3次密码,我只能输入最后一个进程的密码提示。

我暂时解决了这个使用公钥连接的问题,但由于公司政策,这在未来不会成为一个选项。我阅读了 SCP 手册页,但找不到选项,但我非常确信 Parallel 应该有一个选项让我输入密码。

有人知道解决这个问题的方法吗?

编辑:我想知道是否有办法告诉parallel 密码,以便它可以在每次请求时将其提供给scp。也许是这样的:

ls 2011_* | parallel scp {} user@domain < file_with_password.txt

但指定STDIN 的重定向是针对scp 而不是针对lsparallel

【问题讨论】:

    标签: bash scp gnu-parallel


    【解决方案1】:

    您会想查看ssh-agent:拥有受密码短语保护的证书以及只需输入一次密码即可方便的好处。

    【讨论】:

      【解决方案2】:
      parallel sshpass -p $PASS scp -P $PORT -rp {} ~/to_dir ::: $ADDRESS:~/from_dir/*
      

      【讨论】:

      • 编辑:并行 sshpass -p $PASS scp -P $PORT -rp {} ~/to_dir ::: $ADDRESS:~/from_dir/*
      • 欢迎来到 Stack Overflow!虽然这段代码可能会回答这个问题,但最好包含一些上下文,解释它的如何工作以及何时使用它。从长远来看,纯代码答案没有用处。另外,您可以edit您的答案,无需添加 cmets 来表明它。我已经为您编辑了它以添加您的更改并修复代码格式(四个空格用于代码突出显示)。