帮助远程文件查找/scp

帮助远程文件查找/scp

我在远程 sftp 上有一组文件,我每天都需要将其下载到服务器。 sftp 使用 ssh 密钥进行身份验证,因此我创建了一个 ssh 密钥并添加到远程服务器授权文件夹中。我能够手动成功地进行 ssh/sftp。我创建了一个脚本,首先执行 eval ssh-agent -s,然后执行ssh-add.手动运行时,我们会收到输入密码的提示,并且 scp 工作正常。

eval `ssh-agent -s`;
ssh-add;
#copy from remote to local

我需要有关如何在添加此 crontab 每天运行时避免键入密码的建议/最佳实践。

答案1

我需要有关如何在添加此 crontab 每天运行时避免键入密码的建议/最佳实践。

创建一个ssh带有空密码的新密钥,专门用于此任务。将其保存在一个文件中,例如,~/.ssh/cron.将其相应的公钥添加到~/.ssh/authorized_keys远程计算机上。当您运行scpfrom 时,cron(8)请使用新密钥执行此操作:

scp -i ~/.ssh/cron ...

这就是全部内容,您不需要ssh-add

评估 `ssh-agent -s`

与普遍的看法相反,这是坏的实践。 ssh-agent当你退出终端时,它不会被杀死,它会永远伴随着你,无用但完全经过身份验证,从此幸福快乐。您将无法连接到它,但它始终会在那里供一些漂亮的木马发现和使用。随着时间的推移,您还将积累许多副本。

这样做:

ssh-agent /bin/bash -l

这会生成一个 shell,并在您退出该 shell 时退出。不要尝试编写它的脚本,仅将其用于交互的会话,并在完成后立即终止它。

相关内容