Linux下采用OpenSSH实现SFTP上传操作。将所有SFTP用户组的用户都锁定在指定目录下,禁止SSH登录,可以提高安全性。
文中要用到的openssl-1.0.0.tar.gz与openssh-5.4p1.tar.gz在Linux公社(LinuxIDC.com) 1 号FTP服务器
在2011年LinuxIDC.com\1月\Linux下利用OpenSSH建立SFTP服务器\
1. OpenSSL安装,版本要高于0.9.6,CentOS 5.4默认可以不用安装。
下载openssl-1.0.0.tar.gz
# tar zxvf openssl-1.0.0.tar.gz
# cd openssl-1.0.0
# ./config
# make
# make install
2. OpenSSH安装,版本要高于4.8sp1
# rpm -q openssh
openssh-4.3p2-36.el5
说明: centos5.4上需要安装openssh软件包,openssl版本高于0.9.6不需要安装
下载openssh-5.4p1.tar.gz
# tar zxvf openssh-5.4p1.tar.gz
# cd openssh-5.4p1
# ./configure --with-ssl-dir=/usr/local/ssl #openssl的安装位置
# make
# make install
3. 配置
(1) 修改sshd启动脚本
# vi /etc/init.d/sshd
SSHD=/usr/sbin/sshd
改为
SSHD=/usr/local/sbin/sshd
(2) 修改sshd配置文件,tar包安装的配置文件位置在/usr/local/etc/sshd_config
# cd /usr/local/etc
# cp sshd_config sshd_config.bak
# cp /etc/ssh/sshd_config /usr/local/etc/
# vi sshd_config
# override default of no subsystems
# Subsystem sftp /usr/local/libexec/sftp-server
Subsystem sftp internal-sftp
Match group sftp #组名,单个用户可以Match user 用户名
X11Forwarding no
ChrootDirectory /data/htdocs/ #指定实际目录
AllowTcpForwarding no
ForceCommand internal-sftp