Linux下sftp服务器配置之密钥方式登录
由于vsftp采用明文传输、用户名密码可通过抓包得到、为了安全性、需使用sftp、锁定目录且不允许sftp用户登到服务器、由于sftp使用的是ssh协议、需保证用户只能使用sftp、不能ssh到机器进行操作、且使用密钥登陆、不是22端口
1. 创建sftp服务用户组,创建sftp服务根目录
groupadd sftp
#此目录及上级目录的所有者必须为root、权限不高于755、此目录的组最好设定为sftp
mkdir /data/sftp chown -R root:sftp /data/sftp chmod -R 0755 /data/sftp
2. 修改sshd配置文件
cp /etc/ssh/sshd_config,_bk} #备份配置文件 sed -i ´s@#Port 22@Port 22@´ /etc/ssh/sshd_config #保证原来22端口可以 vi /etc/ssh/sshd_config
注释掉/etc/ssh/sshd_config文件中的此行代码
Subsystem sftp /usr/libexec/openssh/sftp-server
添加如下代码
Port 2222 Subsystem sftp internal-sftp -l INFO -f AUTH Match Group sftp ChrootDirectory /data/sftp/%u X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp -l INFO -f AUTH
凡是在用户组sftp里的用户、都可以使用sftp服务;使用sftp服务连接上之后、可访问目录为/data/sftp/username
举个例子
test是一个sftp组的用户、它通过sftp连接服务器上之后、只能看到/data/sftp/test目录下的内容
test2也是一个sftp组的用户、它通过sftp连接服务器之后、只能看到/data/sftp/test2目录下的内容
3. 创建sftp用户
#此例将创建一个名称为test的sftp帐号
#创建test sftp家目录:test目录的所有者必须是root、组最好设定为sftp、权限不高于755
mkdir /data/sftp/test chmod 0755 /data/sftp/test chown root:sftp /data/sftp/test useradd -g sftp -s /sbin/nologin test #添加用户、参数-s /sbin/nologin禁止用户通过命令行登录
创建test用户密钥对
# mkdir /home/test/.ssh # ssh-keygen -t rsa # cp /root/.ssh/id_rsa.pub /home/test/.ssh/authorized_keys # chown -R test.sftp /home/test
在test目录下创建一个可以写的upload目录
mkdir /data/sftp/test/upload chown -R test:sftp /data/sftp/test/upload
注:sftp服务的根目录的所有者必须是root、权限不能超过755(上级目录也必须遵循此规则)、sftp的用户目录所有者也必须是root,且最高权限不能超过755
4. 测试sftp
service sshd restart
test用户密钥登陆如下图
上一篇: vote|用于获取一组投票表单
下一篇: sonchannel|织梦子栏目调用标签