我需要创建一个只能SFTP到特定目录的用户并获取一些信息的副本。这就对了。我一直在线查看,他们提供了有关chroot的信息并修改了sshd_config。
到目前为止,我可以
useradd sftpexport -M -d / u02 / export / cdrs -s / bin / false
任何人都可以建议编辑的内容,以便用户只能登录并复制文件吗?
答案 0 :(得分:29)
我更喜欢创建用户组sftp
,并将该组中的用户限制在其主目录中。
首先,编辑您的/etc/ssh/sshd_config
文件并将其添加到底部。
Match Group sftp
ChrootDirectory %h
ForceCommand internal-sftp
AllowTcpForwarding no
这告诉OpenSSH sftp组中的所有用户都要被chroot到他们的主目录(%h
在ChrootDirectory命令中表示)
添加一个新的sftp组,将您的用户添加到该组,限制他访问ssh并定义其主目录。
groupadd sftp
usermod username -g sftp
usermod username -s /bin/false
usermod username -d /home/username
重启ssh:
sudo service ssh restart
如果您仍遇到问题,请检查主目录上的目录权限是否正确。根据您的设置适当调整755值。
sudo chmod 755 /home/username
编辑:根据您的问题的详细信息,看起来您只是缺少sshd_config部分。在您的情况下,请将sftp
替换为sftpexport
。还要确保可以在/u02/export/cdrs
目录中访问文件权限。
更好的设置(并且设置甚至比我建议的更好)是将/u02/export/cdrs
目录符号链接到用户主目录。
答案 1 :(得分:2)
您可能需要为此用户添加受限制的shell,可以在其中放置一些文件。您可以使用rssh工具。
usermod -s /usr/bin/rssh sftpexport
在配置/etc/rssh.conf
中启用允许的协议。