scp文件到远程服务器所需的最小用户权限是什么?

我想设置一个cron作业来将数据从一个主机(A)传输到另一个(B)。

我的理解到目前为止,我将不得不在机器B上创build一个用户,以便scp可以将文件复制到用户主目录中的文件夹。

但是,我不希望新创build的用户拥有任何权限,只需将文件从机器A复制到B即可。

我认为用户:

  1. 需要能够login到机器B.
  2. 不应该能够运行sudo或su
  3. 理想情况下,不应该能够CD上面的主目录(听起来像一个chroot用户,不知道这是可能的)
  4. 应该只能写入单个文件(在机器B的主目录中),甚至不允许运行任何进程或脚本等。

这个用户的全部目的只是简单地将文件从机器A传送到机器B,而不会影响机器B的安全性

我想将这个传输作为无人值守的cron作业来运行。 我也想发送压缩和encryption的文件,所以我需要知道如何能够:

  1. encrypyt而不提示input密码(所以可以在脚本中使用)
  2. 如何在不提示input密码的情况下使用scp

任何帮助上述将不胜感激

顺便说一下,我正在运行的Ubuntu 10.0.4 LTS,我想使用gpg进行encryption,但我接受build议/build议

您可以为此安装rssh :受限制的SSH Shell。 这将限制您的用户仅启动“SFTP”或SCP会话。 当用户尝试打开terminal会话时,rssh将拒绝该请求。

rssh shell可以被激活,通过将其作为shell分配给用户。 这可以在/etc/passwd完成。

请注意,用户仍然可以读取磁盘上的每个常规。 这可以通过SELinux / AppArmor / chroot解决,但这是一个相对复杂的设置。 如果你只关心访问特定的文件夹,我会build议运行一个专用的FTPS服务器。

我可以build议你不要使用sftp吗? locking用户可以login的用户帐户,所以没有什么可以做,而且sftp依靠普通的sshauthentication。

相反,我会build议你使用ftps。 这样你就可以得到encryption隧道,并且你可以使用X.509客户端证书进行authentication,避免使用密码。

有关ftps的更多信息,请参阅https://help.ubuntu.com/10.04/serverguide/C/ftp-server.html