我有 3 台 Linux 服务器 - 第一个是开发机器(我在其中编译二进制文件),第二个是“jumpbox”,它帮助我连接到“测试床” - 这是我需要复制二进制文件的地方。
现在,我正在做这样的事情:
1)使用 scp -r binary abc@jumpbox:/temp/ 将我的二进制文件从 devmachine 复制到 Jumpbox
2)登录jumpbox并使用scp -r binary abc@testbed:/bin/将二进制文件从jumpbok复制到testbed
有什么方法可以通过一个脚本完成上述两个步骤吗?
我意识到我将被迫将密码保存在文件中才能正常工作,但我对此很满意 - 我始终可以使用加密。
答案1
最简单的选择是执行 ssh 连接通过 pubkey 身份验证无需密码。这意味着您必须在服务器之间共享公钥。
然后你可以在“源”服务器上使用类似的命令:
cat file | ssh user@serverA "ssh user@serverB \"cat > file\""
答案2
您需要使用 ssh 的公钥/私钥设置无密码登录。
然后,假设要复制的文件位于 中dir
,
source$ tar cf - dir | ssh servera 'ssh serverb "cd dest ; tar xf - " '
在哪里
source$
你提示吗tar cf - dir
将 dir 中的 tar 文件复制到 stdinssh servera
将您记录到 serveracd dest ; tar xf -
从 dest 目录中的标准输入文件中提取。