通过 ssh 为 cron rsync 设置密码

Hol*_*ter 2 linux ssh rsync

我正在编写一个 bash 脚本,该脚本将从 cron 调用以每天一次从远程服务器中提取文件。我正在使用 SSH,因此我需要自动提供密码,因为它在无人值守的情况下运行。到目前为止,这是我想出的:

1:通过创建DSA密钥对ssh-keygen
2:将公钥复制到远程服务器
3:配置ssh-agent处理密钥密码

我的问题是:这一切都是必要的吗?这是最简单/最好的方法吗?这是一项非常简单的任务,因此我希望在保持合理安全级别的同时使配置尽可能简单。

附加信息:
- 未运行 rsync 守护进程
- 两台机器都是 Ubuntu linux

Sam*_*cke 7

如果不使用sshand ,你所做的任何事情都是不安全的sshd

规范的方法是使用scp甚至更好,rsync以及没有密码的 ssh 密钥。

或者,创建一个仅用于复制的密钥,并在远程端编辑 authorized_keys 文件以仅包含您需要运行的命令和密钥,例如:

# remote_server:/home/copyuser/.ssh/authorized_keys:
command="[...]" ssh-rsa KEY_HERE user@host
Run Code Online (Sandbox Code Playgroud)

scponly有。如果你创建了一个用户,将他们的 shell 设置/etc/passwd/usr/bin/scponly,他们将不被允许登录,但按照正常权限复制文件。