openssh中sftp功能搭建sftp服务器

1、安装openssl
OpenSSL安装,版本要高于0.9.6
[middle@wjxserver ~]$ rpm -qf `which openssl`
openssl-1.0.1e-42.el6_7.1.x86_64

如果没有安装openssl,请安装openssl,注意选择安装openssl版本,避免选项有心脏出血漏洞的版本。
检查openssl当前版本是否修复心脏出血漏洞:
[middle@wjxserver ~]$ rpm -q openssl-1.0.1e-42.el6_7.1.x86_64 --changelog |grep 'CVE-2014-0160'
- fix CVE-2014-0160 - information disclosure in TLS heartbeat extension


2、安装openssh
服务器版本要高于4.8sp1
[middle@wjxserver ~]$ rpm -qf `which sshd`
openssh-server-5.3p1-84.1.el6.x86_64
[root@wjxserver ~]# which sshd
/usr/sbin/sshd

注意,上面是检查安装openssh的服务器版本,检查openssh客户端版本信息如下:
[middle@wjxserver ~]$ rpm -qf `which ssh`
openssh-clients-5.3p1-84.1.el6.x86_64

3、配置
确认sshd启动脚本SSHD的值指向正确的sshd版本的执行文件
[root@wjxserver ~]# cat /etc/init.d/sshd|grep SSHD=
SSHD=/usr/sbin/sshd

4、帐号设置
SFTP的账户直接使用Linux操作系统账户,我们可以用useradd命令来创建账户
#创建sftponly组:
[root@wjxserver ~]# groupadd sftponly

开设SFTP账号:
#创建账号根目录
[root@wjxserver ~]# mkdir -p /data/dir1/sftp/sftp-jxwxcs/
#新建SFTP帐号
[root@wjxserver ~]# useradd -g sftponly -s /sbin/nologin -d /data/dir1/sftp/sftp-jxwxcs/ sftp-jxwxcs
useradd:警告:此主目录已经存在。
不从 skel 目录里向其中复制任何文件。

#修改帐号密码
[root@wjxserver ~]# passwd sftp-jxwxcs

#修改帐号主目录所有者和属性
[root@wjxserver ~]# chown root.root /data/dir1/sftp/sftp-jxwxcs/
[root@wjxserver ~]# chmod 755 /data/dir1/sftp/sftp-jxwxcs/

#创建上传目录
[root@wjxserver ~]# mkdir /data/dir1/sftp/sftp-jxwxcs/upload/
#修改上传文件夹的所属用户和组:
[root@wjxserver ~]# chown sftp-jxwxcs.sftponly /data/dir1/sftp/sftp-jxwxcs/upload/

#修改账号最大天数
chage -M 99999 sftp-jxwxcs

[root@vmcxftp01 upload]# chage -l
用法:chage [选项] 用户名
选项:
  -d, --lastday 最近日期        将最近一次密码设置时间设为“最近日期”
  -E, --expiredate 过期日期     将帐户过期时间设为“过期日期”
  -h, --help                    显示此帮助信息并退出
  -I, --inactive 失效密码       将因过期而失效的密码设为“失效密码”
  -l, --list                    显示帐户年龄信息
  -m, --mindays 最小天数        将两次改变密码之间相距的最小天数设为“最小天数”
  -M, --maxdays 最大天数        将两次改变密码之间相距的最大天数设为“最大天数”
  -W, --warndays 警告天数       将过期警告天数设为“警告天数”


5、设置sshd_config。
通过Chroot限制用户的根目录
编辑/etc/ssh/sshd_config,注销掉Subsystem       sftp    /usr/libexec/openssh/sftp-server 这行,增加如下内容:
Subsystem      sftp    internal-sftp -l INFO -f AUTH
Match group sftponly
        ChrootDirectory     %h
        X11Forwarding       no
        AllowTcpForwarding  no
        ForceCommand        internal-sftp
MaxAuthTries 3
MaxSessions 30

【备注】以上配置后的sftp用户登录日志记录在/var/log/secure 

6、重启sshd服务
[root@wjxserver ~]# service sshd reload
重新载入 sshd:[确定]

7、测试登录
[root@wjxserver2 ~]# sftp  sftp-jxwxcs@192.168.19.240
Connecting to 192.168.19.240...
sftp-jxwxcs@192.168.19.240's password: 
sftp> ls
Couldn't get handle: Permission denied

出现上面的错误提示是因为系统启动了SELINUX,关掉这个功能即可:
[root@wjxserver sftp]# cat /etc/selinux/config|grep SELINUX=
# SELINUX= can take one of these three values:
SELINUX= enforcing

修改为:
[root@wjxserver sftp]# cat /etc/selinux/config|grep SELINUX=
# SELINUX= can take one of these three values:
SELINUX= disabled
然后重启。或者setenforce 0

[root@wjxserver sftp]# setenforce 0

sftp> put install.log
Uploading install.log to /upload/install.log
install.log                                                                                                                           100%   36KB  35.5KB/s   00:00    
sftp> LS
install.log   
sftp> ls
install.log   
sftp> cd ..
sftp> ls
upload  

从上面可以看出,可以正常使用了。

参考:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值