Linux下利用OpenSSH建立SFTP服务器


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 ]

 

相关内容

    暂无相关文章