Sftp 服务限制用户访问权限
Sftp 服务要想限制用户的访问权限(即sftp服务用户只能访问特定的文件目录),那么系统的OpenSSH 服务软件的版本必须是及以上版本才支持,如果低于该版本,就要首先升级OpenSSH版本。 ?
第一步:查看OpenSSH软件版
?
[root@Oracle-2 ~]# rpm -qa | grep ssh ?
或者: ?
[root@Oracle-2 ~]# ssh -V , OpenSSL 01 Jul 2008 ?
发现操作系统的OpenSSH软件是,低于版本,所以需要做升级。 ?
第二步:下载最新的OpenSSH软件
?
OpenSSH是免费的,可以到官网上进行下载: 当前最高版本是,我们就可以下载该版本:? 下载的时候,我们需要看一看官方安装指导文档Installation instructions ,里面有安装该版本的注意事项和安装步骤说明,最好仔细阅读一下。 ? ?
第三步:确认OpenSSH软件安装条件
?
在官方安装指导文档中提到,安装需要具备两个条件: ?
You will need working installations of Zlib and OpenSSL. Zlib or or greater (ealier versions have problems): ?
OpenSSL or greater:
上面指出了,安装所依赖的两款软件Zlib和OpenSSL的最低版本,如果服务器的软件版本不符合要求,就要先升级该两款软件。 ?
首先我们需要确认服务器上Zlib和OpenSSL软件的版本: ?
[root@Oracle-2 ~]# rpm -qa | grep -i zlib ?
[root@Oracle-2 ~]# rpm -qa | grep -i openssl ?
可以看到,Zlib 的版本是 ,OpenSSL的版本是,满足安装的要求。 ?
第四步:卸载OpenSSH软件
?
安装之前,有下面几个工作需要完成: ?
(1)停sshd服务
[root@Oracle-2 ~]# service sshd stop Stopping sshd: [ OK ]
?
(2)备份sshd文件
说明:在卸载之前需要将 /etc/sshd 文件做个备份,安装完成后,需要再将备份的sshd文件拷贝到/etc/目录中,这样可以保证升级完成后可以继续使用service sshd start/stop/restart 的方式管理sshd服务,否则将不可使用。 [root@Oracle-2 ~]# cp /etc/sshd /root/sshd ?
(3)卸载服务器上已经存在的OpenSSH软件 卸载OpenSSH,通过rpm -qa 命名查询出需要卸载的rpm软件包, 再用 rpm -e 命令卸载: ?
查询:
[root@Oracle-2 ~]# rpm -qa | grep -i openssh ?
卸载:
[root@Oracle-2 ~]# rpm -e -deps [root@Oracle-2 ~]# rpm -e -deps [root@Oracle-2 ~]# rpm -e -deps [root@Oracle-2 ~]# rpm -e -deps ?
(4)删除 /etc/ssh/ 目录下的ssh文件 rm -rf /etc/ssh/* ?
第五步:安装OpenSSH软件
?
解压下载的软件包 ~]# tar -zxvf ? 安装OpenSSH软件:
进入解压出的文件夹,按照顺序执行下面的编译和安装命令:
[root@Oracle-2 ~]# ./configure –prefix=/usr –sysconfdir=/etc/ssh –with-pam –with-md5-passwords –mandir=/usr/share/man [root@Oracle-2 ~]# make
[root@Oracle-2 ~]# make install ?
执行完成后,就可以用 ssh -V 命名查看openssh的版本,验证安装结果: [root@Oracle-2 ~]# ssh -V , OpenSSL 01 Jul 2008
?
可以看到版本已经变成了,说明安装没有问题。 ?
接下来,恢复sshd文件,将备份的sshd文件复制到 /etc/ 目录下: [root@Oracle-2 ~]# cp /root/sshd /etc/sshd ?
测试sshd服务的启动和停止:
[root@Oracle-2 ~]# service sshd restart Stopping sshd: [ OK ] Starting sshd: [ OK ]
?
OK,到这里,OpenSSH 的升级就做完了。 ?
注意:
这样升级完成,在服务器关机启动后,sshd服务不会自动启动,为了使sshd服务在开机时自动启动,我们需要执行下面的命令: ?
[root@Oracle-2 ~]# chkconfig --add sshd
[root@Oracle-2 ~]# chkconfig --level 123456 sshd on ?
这样开机后就可以自动启动sshd服务了。 ?
参考内容:?
第六步:配置sftp服务用户的访问权限
?
(1)创建sftp用户的主根目录
[root@Oracle-2 ~]# mkdir -p /home/sftp
[root@Oracle-2 ~]# chmod -R 755 /home/sftp ?
(2)创建sftp用户组和一个sftp用户 [root@Oracle-2 ~]# groupadd sftp
[root@Oracle-2 ~]# useradd -g sftp -d /home/sftp/blog blog [root@Oracle-2 ~]# passwd blog ?
(3)权限设置
设置 /etc/ssh/sshd_config配置文件,通过Chroot限制用户的根目录。 ?
[root@Oracle-2 ~]# vi /etc/ssh/sshd_config # override default of no subsystems #注释掉原来的Subsystem设置
#Subsystem sftp /usr/libexec/sftp-server #启用internal-sftp
Subsystem sftp internal-sftp ?