4

我需要并行运行一些命令,包括 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是 forscp而不是 for lsor parallel

4

2 回答 2

4

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

于 2013-02-23T09:32:44.357 回答
2
parallel sshpass -p $PASS scp -P $PORT -rp {} ~/to_dir ::: $ADDRESS:~/from_dir/*
于 2016-03-18T21:01:51.270 回答