RHEL中建议用SSH远程访问,但是有时我们只希望用户可以访问服务器上的文件,但不能登陆服务器进行操作,也就是不能SSH登陆,但是可以通过SFTP进行文件传输。通过以下配置可以进行控制。
如果控制sftp目录,需要openssh 4.8p1以上,以下就别折腾了。如果版本低,重装一下,下载地址如下:http://ftp.jaist.ac.jp/pub/OpenBSD/OpenSSH/portable/
查看ssh版本
1、 配置telnet连接,因为重装ssh的话需要通过telnet来远程(vnc也行)
查看安装的telnet
配置telnet的disable为no
配置telnet允许root登陆,注释pam_securetty.so这行
重启telnet服务
2、 telnet登陆服务器,停止ssh
查看原openssh的安装情况
全部卸载
3、 安装最新版openssh,此文使用的是openssh-6.0p1
#cdopenssh-6.0p1
#./configure–prefix=/usr/local/ssh –sysconfdir=/etc/ssh –with-pam –with-zlib –with-ssl-dir=/usr/local/ssl–with-md5-passwords –mandir=/usr/share/man
#make
#makeinstall
# cp /usr/local/ssh/bin/* /usr/bin/
# cp /usr/local/ssh/sbin/* /usr/sbin/
验证安装结果
将ssh加入启动服务,配置开机启动
ssh安装完成,停止telnet后,可以回到ssh远程了。
4、 例如:想把目录/work/git/gitspace作为sftp的访问根目录,并控制用户只能通过sftp进行文件访问,而不能通过ssh登陆,则配置如下。
建立用户组sftp-only
创建用户sftpadmin指定为sftp-only组,并shell为/sbin/nologin
配置ssh,使用户组sftp-only下的用户仅允许sftp且根目录为/work/git/gitspace
#vi/etc/ssh/sshd_config
将Subsystem部分修改如下
重启ssh服务,用sftpadmin用户登陆尝试。