Centos6.5搭建sftp服务器

Centos6.5搭建sftp服务器

SFTP,即 SSH 文件传输协议( SSH File Transfer Protocol ),或者说是安全文件传输协议( Secure File Transfer Protocol )。SFTP 是一个独立的 SSH 封装协议包,通过安全连接以相似的方式工作。它的优势在于可以利用安全的连接传输文件,还能浏览本地和远程系统上的文件系统。
在很多情况下,使用SFTP都比FTP更可取,因为它具有最基本的安全特性和能利用 SSH 连接的能力,FTP是一种不安全的协议,只能在有限的情况下或在您信任的网络上使用。
服务器 OpenSSH-Server 版本最低4.8p1,因为低版本不支持新配置项 ChrootDirectory ,而此处需要ChrootDirectory来配置权限
当然配置时请关闭防火墙和selinux

###系统环境

主机名服务器IPopenssl版本openssh版本
sftp172.17.0.2OpenSSL 1.0.1e-fipsOpenSSH_5.3p1

安装软件

# yum -y install openssl openssh-server openssh-clients

配置用户组

# groupadd sftp
# useradd -g sftp -s /sbin/nologin mysftp
# echo mypass | passwd --stdin mysftp
# mkdir -p /data/sftp/mysftp
# usermod -d /data/sftp/mysftp mysftp

配置sshd服务,编辑 /etc/ssh/sshd_config

注释此行

#Subsystem sftp /usr/libexec/openssh/sftp-server

在此行下面添加如下内容:

Subsystem sftp internal-sftp       # 指定使用sftp服务使用系统自带的internal-sftp
Match Group sftp                   # 匹配sftp组的用户,若要匹配多个组,可用逗号分开
ChrootDirectory /data/sftp/        # 限制用户的根目录
ForceCommand internal-sftp         # 只能用于sftp登录
AllowTcpForwarding no              # 禁止用户使用端口转发
X11Forwarding no                   # 禁止用户使用端口转发

设定Chroot目录权限及sftp用户登陆后可写入的目录

# chown root.sftp /data/sftp/mysftp           #文件夹所有者必须是root,用户组可以不是root。
# chmod 755 /data/sftp/mysftp                 #权限不能超过755但不包括755,否则会导致登录报错。
# mkdir /data/sftp/mysftp/upload              #创建用户上传目录
# chown mysftp.sftp /data/sftp/mysftp/upload        #
# chmod 755 /data/sftp/mysftp/upload

测试sftp服务器能否登录、上传、下载

  • 测试登录
    测试结果如下,则sftp服务正常登录

# sftp -p22 mysftp@172.17.0.2
m1ysftp@172.17.0.2’s password:
Connected to mysftp@172.17.0.2.
sftp>

若出现一下情况:

# sftp -p22 mysftp@172.17.0.2
packet_write_wait: Connection to 172.17.0.2 port 22: Broken pipe
Couldn’t read packet: Connection reset by peer

出现以上情况的原因是:/data/sftp/mysftp 目录权限分配不当所致,将此目录的所有者更改为root即可,用户组可为root/sftp。

  • 测试上传

登录服务器

# sftp> put vars.yml
Uploading vars.yml to /upload/vars.yml
vars.yml

  • 测试下载

登录服务器

# sftp> get vars.yml /tmp
Fetching /upload/vars.yml to /tmp/vars.yml
/upload/vars.yml

  • 测试删除

登录服务器

# sftp> rm vars.yml
Removing /upload/vars.yml

小技巧

  • 登录sftp服务器后,可以使用部分shell命令,在shell命令前添加l,可以对本地主机操作。例如ls、lls、pwd、lpwd、cd、lcd等命令
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值