最近公司跟银行业务合作,银行那边需要传送一些文件给我们,银行安全要求高需要使用sftp传送,于是研究尝试搭建一下自己的sftp服务环境.
我采用的是 在Centos 6.5环境使用系统自带的internal-sftp搭建SFTP服务器。
打开终端或者使用ssh 登录链接服务器:
1.首先检查openssh 的版本
版本必须大于4.8p1,低于的这个版本需要升级。
2.创建一个sftp用户组
[root@iZ23pwa1temZ ~]# groupadd sftp
3.创建一个sftp用户 用户名:zx_test 密码:zx_test
[root@iZ23pwa1temZ ~]# useradd -g sftp -s /bin/false zx_test (/bin/false标示该用户不能使用终端登录)
[root@iZ23pwa1temZ ~]# passwd zx_test --使用passwd命令给新创建的用户修改或者创建密码
4.sftp用户创建好之后,会在 /home/下面生成一个名字叫做 zx_test的文件夹
[root@iZ23pwa1temZ ~]# mkdir /home/zx_test/upload --创建一个用于上传存储文件的upload文件夹
[root@iZ23pwa1temZ ~]# chown zx_test:sftp /home/zx_test/upload --目录指向标示zx_test 用户的sftp工作目录 为upload
5.配置sshd_config
找到 /etc/ssh/sshd_config 并编辑
找到如下这行,用#符号注释掉,大致在文件末尾处。
# Subsystem sftp /usr/libexec/openssh/sftp-server
并添加新的内容
编辑好后退出,并重启ssh
[root@iZ23pwa1temZ ~]# service sshd restart --重启服务
6.设定Chroot目录权限 sftp目录根目录必须是 所属root用户
[root@iZ23pwa1temZ ~]# chown root:root /home/zx_test --root权限绑定
[root@iZ23pwa1temZ ~]# usermod -d /home/zx_test zx_test --指定zx_test 目录所有者为zx_test
7.修改登录后工作目录可写可读权限
[root@iZ23pwa1temZ ~]# chmod 755 /home/zx_test/upload --给出755权限
8.修改/etc/selinux/config
文本编辑器打开/etc/selinux/config
编辑后保存,再次重启
[root@iZ23pwa1temZ ~]# service sshd restart --重启服务
9.验证sftp环境
用zx_test用户名登录,yes确定,回车输入密码。
[root@iZ23pwa1temZ ~]# sftp zx_test60@127.0.0.1 --登录sftp
Connecting to 127.0.0.1... --链接中
zx_test@127.0.0.1's password: --输入密码
sftp> --sftp已经进入
10.使用filezilla 进行本地对远程的链接 成功
网友评论