共计 1427 个字符,预计需要花费 4 分钟才能阅读完成。
在 CentOS 6.6 环境使用系统自带的 internal-sftp 搭建 SFTP 服务器。
打开命令终端窗口,按以下步骤操作。
0、查看 openssh 的版本
ssh -V 使用 ssh -V 命令来查看 openssh 的版本,版本必须大于 4.8p1,低于的这个版本需要升级。
1、创建 sftp 组
groupadd sftp
2、创建一个 sftp 用户,用户名为 mysftp,密码为 mysftp
修改用户密码和修改 Linux 用户密码是一样的。
useradd -g sftp -s /bin/false mysftp // 用户名
passwd mysftp // 密码
useradd -g sftp -s /bin/false mysftp
passwd mysftp
3、sftp 组的用户的 home 目录统一指定到 /data/sftp 下,按用户名区分,这里先新建一个 mysftp 目录,然后指定 mysftp 的 home 为 /data/sftp/mysftp
mkdir -p /data/sftp/mysftp
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
在文件最后面添加如下几行内容,然后保存。
Subsystem sftp internal-sftp
Match Group sftp
ChrootDirectory /data/sftp/%u
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
5、设定 Chroot 目录权限
chown root:sftp /data/sftp/mysftp
chmod 755 /data/sftp/mysftp
6、建立 SFTP 用户登入后可写入的目录
照上面设置后,在重启 sshd 服务后,用户 mysftp 已经可以登录。但使用 chroot 指定根目录后,根应该是无法写入的,所以要新建一个目录供 mysftp 上传文件。这个目录所有者为 mysftp,所有组为 sftp,所有者有写入权限,而所有组无写入权限。命令如下:
mkdir /data/sftp/mysftp/upload
chown mysftp:sftp /data/sftp/mysftp/upload
chmod 755 /data/sftp/mysftp/upload
7、修改 /etc/selinux/config
文本编辑器打开 /etc/selinux/config
vi /etc/selinux/config
将文件中的 SELINUX=enforcing 修改为 SELINUX=disabled,然后保存。
在输入命令
setenforce 0
8、重启 sshd 服务
输入命令重启服务。
service sshd restart
9、验证 sftp 环境
用 mysftp 用户名登录,yes 确定,回车输入密码。
sftp mysftp@127.0.0.1 显示 sftp> 则 sftp 搭建成功。
10、使用 FileZilla FTP Client 连接 SFTP 服务器
输入主机 IP 地址、用户名、密码、端口连接 SFTP 服务器,端口默认为 22。
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-08/134340.htm