通过 SSHPASS 传递多个密码

通过 SSHPASS 传递多个密码

我有 3 个 Linux 系统。

系统_A 系统_B 系统_C

我想将文件从“System_B”复制到“System_C”,同时从系统 System_A 登录。

下面的代码将文件从“System_A”复制到“System_C”(因为我在从“System A”登录时运行此代码)

sshpass -p "pass123" scp /u01/File_A.txt oracle@$ServerIP_C:/u01/File_C.txt

另外,下面的代码实现了我想要的功能,即将文件从“System_B”复制到“System_C”,同时从系统 System_A 登录。

sshpass -p "pass123" scp oracle@$ServerIP_B/u01/File_B.txt oracle@$ServerIP_C:/u01/File_C.txt

但是在上面的代码中,它要求输入 1 个密码,因为我只通过 sshpass 传递了 1 个密码,而不是 2 个。

我怎样才能在这里通过 sshpass 传递第二个密码,以便它不会提示我输入密码。

我尝试过以下代码:

 sshpass -p "pass123" sshpass -p "pass123" scp oracle@IP_B:/tmp/File_B.txt oracle@IP_C:/tmp/File_C.txt
This throws error: Conflicting password source

sshpass -p "pass123" scp oracle@IP_B:/tmp/File_B.txt sshpass -p "pass123" oracle@IP_C:/tmp/File_C.txt
Promted for 1 Password

答案1

您应该考虑使用 SSH 密钥。使用密钥,您可以连接到计算机而无需输入密码。sshpass 手册页也推荐将其作为替代方案。

相关内容