我想使用cron作业从服务器下载文件,因此我需要使用scp
命令而无需通过关键字提供密码。
我该怎么做?
第一步是在要复制的计算机上生成私钥-公钥对:
ssh-keygen
您可以使用默认值,并确保不提供使用密码。这可能需要一些时间。
密钥生成完成后,第二步是使用以下命令将公用密钥复制到服务器:
ssh-copy-id username@server
与适当username
和server
。为此,您需要密码username
。如果username
没有密码,则可以通过root帐户使用公共密钥复制文件,但是临时为该帐户创建密码并使用它要容易得多。ssh-copy-id
第三步:测试安装的公共密钥是否使用工作:ssh username@server
或scp somefile username@server:/var/tmp
第四步:crontab -e
在客户端计算机上添加一个cron作业():
15 23 * * * scp username@server:/path/on/server/downloadfile /local/destination
17 23 * * * scp /local/source/somefile username@server:/path/on/server/uploaddirectory
它将/path/on/server/downloadfile
每天晚上11:15从服务器复制文件,两分钟后开始上传/local/source/somefile
要考虑的事情:
username
帐户,以便仅允许该帐户,scp
而不允许该帐户ssh
。rsync
上面的ssh密钥对可以提高效率。本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句