CentOS 5.5中修改sshd_config来限制用户只能使用sftp

在一台服务器上需要让某用户能上传文件,但是又不能让他ssh登录上去。实在不想再把ftp的服务启起来,只有在ssh的配置上想办法。

具体操作如下:
为了稳妥起见,最好先把telnet服务打开,在修改完成后,在关闭该服务。

1、升级openssh到4.8以上
    不要因为CentOS是新版本,就认为openssh版本合适了。
    需要重新编译、安装。
    注意,如果是覆盖了原系统的ssh,可能会报错,说/etc/ssh/...文件已经存在。我是直接删除了/etc/ssh下面的所有文件。

2、修改配置文件/etc/ssh/sshd_config
    我需要限制的用户名是myftpuser,在文件的末尾添加了一下几句话,之后,用service sshd restart
Match User myftpuser
        ChrootDirectory /www/myftpuser
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

3、建相关目录。
    myftpuser用户要上传的目录设在/www/myftpuser,这个目录需要属于root.root。
    然后执行命令,设置myftpuser用户登录后就到该目录。
    usermod -d /www/myftpuser myftpuser

    这样,配置就完成了,myftpuser用户sftp登录的时候,就直接到/www/myftpuser目录了。但是登录上去他什么都做不了,你只需要在/www/myftpuser下再建立一个目录mypic,然后将mypic的owner设为myftpuser,即可。
    再用ssh登录试试,已经登不上了。

相关推荐