- FTP使用Tcp端口21上的控制连接建立连接。SFTP是在客户端和服务器之间通过SSH协议(TCP端口22)建立的安全连接来传输文件。
- 安全性:SFTP使用加密传输认证信息和传输的数据,所以使用SFTP相对于FTP是非常安全。
- 效率:SFTP这种传输方式使用了加密解密技术,所以传输效率比普通的FTP要低得多。
groupadd -g 666 amsftp
# 查看用户组 cat /etc/group
# 查看用户所在组 groups user01
useradd -g amsftp user01
passwd user01
#输入密码
这里考虑到对所创建的SFTP用户进行读写目录的权限限制,故通过ChrootDirectory限制SFTP用户只能访问指定目录且不能进行SSH登录
mkdir -p /amsftp/user01/{in,out}
#用户chrootDirctory 牢狱
chown root:root /amsftp/user01
chmod 755 /amsftp/user01
#用户操作目录
chown user01:amsftp /amsftp/user01/in
chown user01:amsftp /amsftp/user01/out
chmod 755 /amsftp/user01/in
chmod 775 /amsftp/user01/out
usermod user01 -s /sbin/nologin
#恢复
usermod -s /sbin/bash user01
usermod -d /amsftp/user01 user01
#修改配置
vi /etc/ssh/sshd_config
#注释并添加内容
# Subsystem sftp /usr/libexec/openssh/sftp-server
Subsystem sftp internal-sftp
Match User user01 #此处设置控制的用户,也可以设置为组
ChrootDirectory /amsoft/user01 #允许用户访问的目录,此处我们设置为用户家目录
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
service sshd restart
#/etc/init.d/sshd reload
#/etc/inti.d/sshd restart
校验SFTP客户端登录(处在牢狱之中),仅仅能登录SFTP而SSH登录被禁用,达到了最初的预期效果
10、异常处理
#追踪
tail -500f /var/log/message
#干掉处理root用户的所有sshd进程
ps -ef | grep sshd | grep -v root | awk '{print $2}' | xargs kill -9
#重启sshd
service sshd restart