【问题标题】:Run multiple rsync commands via ssh and only enter ssh passphrase once通过 ssh 运行多个 rsync 命令并且只输入一次 ssh 密码
【发布时间】:2019-09-29 05:52:06
【问题描述】:

我正在通过脚本中包含的多个 rsync 调用在 iMac 和 Synology NAS 之间同步多个文件夹。如何使用私钥/公钥和密码添加 ssh,这样我只需在脚本运行时输入一次密码,但所有 rsync 命令都使用安全 ssh 隧道?

rsync -rtv --chmod=Du=rwx,Dgo=rx,Fu=rw,Fgo=r --delete --exclude='.*' /Users/Username/FolderName/ username@ipaddress::Foldername/

这是每个没有 ssh 的 rsync 调用的模板。每次 rsync 调用的文件夹名称都不一样。

我可以使用密码生成 ssh 私钥/公钥并将公钥上传到 NAS 并将其合并到 authorized_keys 文件中。我了解将 ssh 添加到 rsync 命令的语法。我不知道如何通过脚本只为脚本中运行的 7 个 rsync 命令输入一次密码。 任何可以为我指明正确方向的意见将不胜感激。

【问题讨论】:

    标签: bash macos ssh rsync synology


    【解决方案1】:

    如果您使用 SSH 密钥编写脚本,则不希望使用密码。除了在 TTY 上,OpenSSH 不提供输入密码短语的方法,而使用 TTY 输入密码短语的唯一方法是使用 Expect 之类的东西来处理密码短语条目,这是不必要的复杂。

    相反,您应该使用文件系统权限,并在必要时使用专用用户来控制对密钥的访问。

    【讨论】:

    • 感谢您的回复。这听起来像是要走的路。
    • 我可以使用 ssh-agent 添加功能,它可以让我有机会将密码短语添加到苹果钥匙串。那么每次我通过 ssh 运行 rsync 命令时,我最多只能选择密码?
    • 是的,您可以将密码保存在钥匙串中,这样就可以反复使用。有an article on how to do that。唯一的限制是您必须以该用户身份登录才能解锁钥匙串。
    猜你喜欢
    • 2014-09-28
    • 2020-10-12
    • 2011-09-10
    • 2023-03-20
    • 2015-06-08
    • 1970-01-01
    • 2012-02-23
    • 2019-06-17
    • 2021-11-26
    相关资源
    最近更新 更多