Linux下配置SFTP服务器

       最近在做一个微信支付水电费的项目,是与兴业银行合作的项目,按照银行的要求要配置一个SFTP服务器,上传每天缴费的对账单到SFTP服务器里面,经过一段时间的摸索,终于配置成功了,跟大家分享一下,配置过程如下:

0、查看openssh的版本

1. ssh -V   

使用ssh -V 命令来查看openssh的版本,版本必须大于4.8p1,低于的这个版本需要升级。

1、创建sftp

1. groupadd sftp  

2、创建一个sftp用户,用户名为mysftp密码为mysftp

修改用户密码和修改Linux用户密码是一样的。

useradd -g sftp -s /bin/false mysftp  //用户名
passwd
 mysftp  //密码

1. useradd -g sftp -s /bin/false mysftp  

2. passwd mysftp  


3
sftp组的用户的home目录统一指定到/data/sftp下,按用户名区分,这里先新建一个mysftp目录,然后指定mysftphome/data/sftp/mysftp

1. mkdir -p /data/sftp/mysftp  

2. usermod -d /data/sftp/mysftp mysftp  


4
、配置sshd_config
文本编辑器打开 /etc/ssh/sshd_config
 vi/etc/ssh/sshd_config

找到如下这行,用#符号注释掉,大致在文件末尾处。
# Subsystem      sftp   /usr/libexec/openssh/sftp-server  

在文件最后面添加如下几行内容,然后保存。

1. Subsystem       sftp    internal-sftp    

2. Match Group sftp    

3. ChrootDirectory /data/sftp/%u    

4. ForceCommand    internal-sftp    

5. AllowTcpForwarding no    

6. X11Forwarding no  


5
、设定Chroot目录权限

1. chown root:sftp /data/sftp/mysftp  

2. chmod 755 /data/sftp/mysftp  


6
、建立SFTP用户登入后可写入的目录

照上面设置后,在重启sshd服务后,用户mysftp已经可以登录。但使用chroot指定根目录后,根应该是无法写入的,所以要新建一个目录供mysftp上传文件。这个目录所有者为mysftp,所有组为sftp,所有者有写入权限,而所有组无写入权限。命令如下:

1. mkdir /data/sftp/mysftp/upload  

2. chown mysftp:sftp /data/sftp/mysftp/upload  

3. chmod 755 /data/sftp/mysftp/upload  


7
、修改/etc/selinux/config

文本编辑器打开/etc/selinux/config

1. vi /etc/selinux/config  

将文件中的SELINUX=enforcing 修改为 SELINUX=disabled ,然后保存。

在输入命令

1. setenforce 0  


8
、重启sshd服务

输入命令重启服务。

1. service sshd restart  


9
、验证sftp环境
mysftp用户名登录,yes确定,回车输入密码。

1. sftp [email protected]  

显示 sftp> sftp搭建成功。

 

10、使用WinSCP,xftp等客户端软件连接SFTP服务器

输入主机IP地址、用户名、密码、端口连接SFTP服务器,端口默认为22

 

本人长期从事java软件工程师培训,有30多门java相关的系列视频课程,大量的实战项目及源代码提供下载,有兴趣的朋友可以看看

http://edu.csdn.net/course/detail/2981

发布了65 篇原创文章 · 获赞 20 · 访问量 3万+

猜你喜欢

转载自blog.csdn.net/software7503/article/details/74857359
今日推荐