sftp配置
限制sftp用户(必须是操作系统用户)的访问权限
不设置ChrootDirectory,通过设置文件、文件夹的权限来限制户sftp用户、用户组:SettingupauserwithrestrictedSFTPaccess
1,查看当前ssh版本,如果版本过低,使用yuminstallopenssh来重新安装或者yumupdateopenssh来更新到最新的ssh版本
ssh-V
OpenSSH_5.3p1,OpenSSL1.0.0-fips29Mars2010
2,备份配置文件:/etc/ssh/sshd_config
cpsshd_configsshd_config.bak
3,添加sftp用户、组、用户主目录
mkdir/sftp#sftp用户home主目录的根地址(属主和属组都是root,权限775)
groupaddsftpgroup1
useradd-gsftpgroup1-d/sftp/dir1-s/lib/xx/sftp-serversftpuser1#sftp用户(每个sftp用户有自己特定的组,特定的home目录,并且shell指定到sftp-server)
passwdsftpuser1
#在相应的用户home目录/sftp/dir1下增加子目录upload(读写、上传用)和public(只读、下载用):
cd/sftp/dir1
mkdir/sftp/dir1/upload
mkdir/sftp/dir1/public
chmod770/sftp/dir1/upload
chmod750/sftp/dir1/public
rmdirxxx#删除目录
chmod750/sftp/dir1
chown–Rroot:sftpgroup1/sftp/dir1
4,修改配置文件:/etc/ssh/sshd_config(关键字大小写不敏感,值大小写敏感)
Matchgroupsftpgroup1#定义属于这个组的用户才能登录,多个组之间用逗号分隔
ChrootDirectory/sftp#该目录必须有XX5权限,且属主为root
X11Forwardingno
AllowTcpForwardingno
ForceCommand/lib/xx/sftp-server#保存退出
5,重启sshd守护进程
servicesshdrestart
sftpwork@ip
chroot后,如果用putty登录的话,会提示错误:Couldnotchdirtohomedirectory/sftp/dir1:Permissiondenied
chroot(ChangeRoot):就是改变程式执行时所参考的根目录位置。
参考:ChrootedSSH/SFTPTutorial(DebianLenny)
问题1:ssh任何用户都可以登录,而sftp只能用root登录。winscp提示错误:Connectionhasbeenunexpectedlyclosed.Serversentcommandexitstatus1.CannotinitializeSFTPprotocol.IsthehostrunningaSFTPserver?
解决:sftp的用户必须是操作系统用户,在CentOS中需要将用户的shell指向sftp-server后,才能使用该用户登录sftp服务器。
find/-name*sftp*
usermod-s/lib/xx/sftp-serversftpuser1
或者手动修改配置文件vim/etc/passwd中sftp用户的shell