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

相关推荐