ssh与sftp分离,附一键分离脚本

本文介绍了在Linux系统中分离SSH与SFTP服务的方法。相比于FTP,SFTP安全性更高,可单独控制用户权限。详细说明了复制相关文件、修改新服务配置、新增账号并开启服务的步骤,还提及启动报错的解决办法及限制指定用户登录的扩展内容,最后提供一键部署脚本下载链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

应用场景:相比于ftp,sftp在安全性上要更高,如果需要与其他机器进行数据传输,建议采用sftp,ssh与sftp分离,可以实现单独进行用户控制:限制某些用户只能使用sftp传输,无法ssh登陆,某些用户只能ssh登陆,无法进行sftp传输。同时可以指定ssh与sftp使用不同的端口。

基本思路:复制ssh服务建立单独的sftp服务

说明:下面所用命令测试基于redhat7或centos7版本

一、复制相关文件

cp -p /usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service

cp -p /etc/pam.d/sshd  /etc/pam.d/sftpd

cp -p /etc/ssh/sshd_config  /etc/ssh/sftpd_config

ln -sf  /usr/sbin/service  /usr/sbin/rcsftpd

ln -sf  /usr/sbin/sshd  /usr/sbin/sftpd

cp -p /etc/sysconfig/sshd  /etc/sysconfig/sftpd

二、    修改新服务的配置
1、修改/etc/systemd/system/sftpd.service
        vim /etc/systemd/system/sftpd.service
        #第2行
        Description=Sftp server daemon
        #第10行,第11行
        EnvironmentFile=/etc/sysconfig/sftpd
        ExecStart=/usr/sbin/sftpd -f /etc/ssh/sftpd_config
2、修改vim /etc/ssh/sftpd_config
        vim /etc/ssh/sftpd_config
        #第17行
        Port 9999    #根据实际情况修改
        #第125行
        PidFile /var/run/sftpd.pid
        #第141行,注释掉这行
        #Subsystem      sftp    /usr/libexec/openssh/sftp-server

    #最后添加下面这几行
        Subsystem sftp internal-sftp
        Match User sftpuser
        X11Forwarding no
        AllowTcpForwarding no
        ForceCommand internal-sftp

三、新增账号并开启服务
    #新增账号
        Useradd -d /app/sftp/ qhsftp
    #修改密码
        passwd  qhsftp
    #设置禁止ssh登陆
        usermod  -s  /bin/false qhsftp
    #修改家目录和权限设置
        chown root /app/sftp    #家目录的属主必须是root, 该家目录的最高可设置权限为755,如果高于该权限,会导致sftp连接不上
        chmod 755 /app/sftp
    #reload daemon
        systemctl daemon-reload
    #开启sftp服务
        systemctl start sftpd
## 如果启动时出现 Bind to port 8822 on :: failed: Permission denied 这种报错,则需要把要添加的sshd服务端口在selinux上注册
查看selinux中sshd当前的端口:semanage port -l | grep ssh
在selinux中添加端口:semanage port -a -t ssh_port_t -p tcp 8822
重启sshd服务
防火墙放行修改后的端口

扩展:
ssh只允许指定的用户登陆(同样适用于sftp)
    方法1:在/etc/pam.d/sshd文件第一行加入
        auth required pam_listfile.so item=user sense=allow file=/etc/sshusers onerr=fail
        然后在/etc下建立sshusers文件,编辑这个文件,加入你允许使用ssh服务的用户名,不用重新启动sshd服务。
    方法2:pam规则也可以写成deny的
        auth required pam_listfile.so item=user sense=deny file=/etc/sshusers onerr=succeed
    方法3:在sshd_config中设置AllowUsers,格式如
        AllowUsers a b c
    重启sshd服务,则只有a/b/c3个用户可以登陆

按照惯例一键部署脚本已配置好,有需要点下面链接进行下载

https://download.youkuaiyun.com/download/ioryhm/13101618

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值