Linux下利用OpenSSH建立SFTP服务器
发布时间:2014-09-05 17:19:54作者:知识屋
Linux下采用OpenSSH实现SFTP上传操作。将所有SFTP用户组的用户都锁定在指定目录下,禁止SSH登录,可以提高安全性。
文中要用到的openssl-1.0.0.tar.gz与openssh-5.4p1.tar.gz在Linux公社(LinuxIDC.com) 1 号FTP服务器
在2011年LinuxIDC.com1月Linux下利用OpenSSH建立SFTP服务器
下载方法见http://www.linuxidc.net/thread-1186-1-1.html
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(3) 修改目录权限
# chown root.sftp /data/htdocs
# groupadd sftp
# useradd -d /data/htdocs -s /bin/false -g sftp koumm
# passwd koumm
说明: 目录属主一定要用root,否则无法登录。其它用户可以加入sftp组中,并且可以在/data/htdocs目录中创建可写文件夹实现文件上传。
(4) 重启sshd服务
# service sshd restart
Stopping sshd: [ OK ]
Starting sshd: /usr/local/etc/sshd_config line 74: Unsupported option GSSAPIAuthentication
/usr/local/etc/sshd_config line 76: Unsupported option GSSAPICleanupCredentials
/usr/local/etc/sshd_config line 87: Unsupported option UsePAM
[ OK ]
解决错误提示:
# vi /usr/local/etc/sshd_config
注释掉74,76,87行
#GSSAPIAuthentication yes
#GSSAPICleanupCredentials yes
#UsePAM yes
# service sshd restart
Stopping sshd: [ OK ]
Starting sshd: [ OK ]
(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)