Top*_*opo 5 bash scp gnu-parallel
我需要并行运行一些命令,包括 SCP。为此,我使用 GNU Parallel。问题是我不知道如何将密码传递给 SCP。这是与我正在运行的类似的一行:
ls 2011_* | parallel scp {} user@domain
Run Code Online (Sandbox Code Playgroud)
如果ls找到3个文件,scp同时询问3次密码,我只能将密码输入到最后一个进程来提示输入。
我暂时解决了使用公钥连接的问题,但由于公司政策,这在将来不会成为一个选择。我阅读了 SCP 手册页,但找不到选项,但我非常有信心 Parallel 应该有一个选项允许我输入密码。
有人知道解决这个问题的方法吗?
编辑:我想知道是否有一种方法可以告诉parallel密码,以便它可以在scp每次询问时提供密码。也许有这样的事情:
ls 2011_* | parallel scp {} user@domain < file_with_password.txt
Run Code Online (Sandbox Code Playgroud)
但指定重定向STDIN是 forscp而不是 for lsor parallel。
您将需要了解ssh-agent:拥有受密码短语保护的证书的好处以及只需输入一次密码短语的便利性。
如果您已安装,GNU Parallel >= 20220322 支持此语法sshpass:
parallel -S user:password@server ...
Run Code Online (Sandbox Code Playgroud)