【问题标题】:Copy file to multiple hosts from a shared file server with password使用密码将文件从共享文件服务器复制到多个主机
【发布时间】:2020-05-09 14:43:24
【问题描述】:

我的网络上有大约 20 台 Mac 始终需要安装字体。

我有一个文件夹位置,我要求他们将需要同步的字体放到每台机器上(为了节省时间,我会在每台机器上安装字体,这样如果他们移动机器,我就不需要这样做了再次)

目前我只是手动将字体从这个服务器位置手动同步到所有机器上

rsync -avrP /server/fonts/ /Library/Fonts/  

这需要我 ssh 到每台机器

有没有办法可以使用带有 ips 的 hosts.txt 文件来编写脚本?每台机器的密码都是相同的,我宁愿不输入 20 次。安全不是问题。

允许我调用脚本并将其指向字体的东西,即

./install-font font.ttf

我查看了 scp,但在脚本中的任何位置都没有看到任何指定密码的示例。

cscp.sh

#!/bin/bash
while read host; do
  scp $1 ${host}:
done


project-prod-web1
project-prod-web2
project-prod-web3

用法

将文件复制到多个主机:

cscp.sh file < hosts

但这要求我每次都输入密码并且没有指定主机上的目标位置。

【问题讨论】:

  • this 回答你的问题了吗?

标签: bash macos ssh scp


【解决方案1】:

我没有在脚本中的任何位置看到任何指定密码的示例。

使用ssh-copy-id 命令将您的公钥安装到这些主机中的每一个。之后sshscp 将使用公私钥认证,无需您输入密码。

【讨论】:

  • 脚本中的哪个位置?
  • 如果有一个 askpass 保留在会话期间解锁的密钥或没有密码的密钥(女巫是一个非常糟糕的主意)。 @davidlumix ssh-copy-id 对每个主机使用一次。
  • @davidlumix 您在任何脚本之外为每个主机运行一次ssh-copy-id。我建议您阅读我为您链接的文章,它包含解决此问题所需的所有信息。
猜你喜欢
  • 2011-02-21
  • 1970-01-01
  • 1970-01-01
  • 2022-10-14
  • 2021-11-23
  • 1970-01-01
  • 2018-06-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多