linux sftp ssh端口分开,Linux 7.5 SSH服务和SFTP服务分离 | 您所在的位置:网站首页 › ssh和sftp分离 › linux sftp ssh端口分开,Linux 7.5 SSH服务和SFTP服务分离 |
SFTP是SSH的一部分,SFTP没有单独的守护进程,它必须使用SSHD守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像是一个服务器程序,而更像是一个客户端程序。 SFTP是使用加密传输认证信息传输数据,所以SFTP是非常安全的。 本手册是在centos7.5系统上进行编写,理论上支持centos7.0以上版本 一、确定服务器SFTP可用 使用Xshell工具连接SFTP服务器,输入systemctl status sshd,查看结果如下,表示机器SFTP已打开且可用 若SFTP未开启,通过命令systemctl start sshd开启 SFTP服务关闭命令为:systemctl stop sshd 二、分离SSH和SFTP服务 系统内开启ssh服务和sftp服务都是通过/usr/sbin/sshd这个后台程序监听22端口,而sftp服务作为一个子服务,是通过/etc/ssh/sshd_config配置文件中的Subsystem实现的,如果没有配置Subsystem参数,则系统是不能进行sftp访问的。 具体操作如下: 2.1 复制SSH相关文件,作为sftp的配置文件 1、 拷贝/usr/lib/systemd/system/目录下的sshd.service文件,放到/etc/systemd/system/目录下,命名为:sftpd.service cp /usr/lib/systemd/system/sshd.service /etc/systemd/system/sftpd.service 2、 拷贝/etc/pam.d/目录下的sshd文件,放到同目录,命名为:sftpd cp /etc/pam.d/sshd /etc/pam.d/sftpd 3、 拷贝/etc/ssh/目录下的sshd_config文件,放到同目录,命名为:sftpd_config cp /etc/ssh/sshd_config /etc/ssh/sftpd_config 4、 对service和rcsftpd进行软连接 ln -sf /usr/sbin/service /usr/sbin/rcsftpd 5、 对sshd和sftpd进行软连接 ln -sf /usr/sbin/sshd /usr/sbin/sftpd 6、 拷贝/etc/sysconfig/目录下的sshd文件,放到同目录,命名为:sftp cp /etc/sysconfig/sshd /etc/sysconfig/sftp 7、 拷贝/var/run/目录下的sshd.pid文件,放到同目录,命名为:sftpd.pid cp /var/run/sshd.pid /var/run/sftpd.pid 2.2 修改复制好的配置文件 1、 修改/etc/systemd/system/目录下sftpd.service文件 vim /etc/systemd/system/sftpd.service 修改图中圈红部分: [Unit] Description=sftpd server daemon Documentation=man:sshd(8) man:sshd_config(5) After=network.target sshd-keygen.service Wants=sshd-keygen.service [Service] Type=notify EnvironmentFile=/etc/sysconfig/sftp ExecStart=/usr/sbin/sftpd -f /etc/ssh/sftpd_config ExecReload=/bin/kill -HUP $MAINPID KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target 2、 修改/etc/ssh/目录下的sftpd_config文件 vim /etc/ssh/sftpd_config 具体修改如下: ①找到第17行,将 Port 22 改成 Port 20022 ②找到第38行,将 #PermitRootLogin yes 改成 PermitRootLogin no 就是取消该行的注释,并将yes改成no,这行参数的目的是拒绝root用户登录 ③找到116行,将 #PidFile /var/run/sshd.pid 改成 PidFile /var/run/sftpd.pid 就是取消该行的注释,并将sshd.pid改成sftpd.pid ④找到第132行,将 Subsystem sftp /usr/libexec/openssh/sftp-server 注释 #Subsystem sftp /usr/libexec/openssh/sftp-server并添以下5行 Subsystem sftp internal-sftp Match User sftpuser X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp 就是注释132行,并将132行下面,添加5行内容。 3、 清空/var/run/目录下的sftpd.pid文件内容 # > /var/run/sftpd.pid 将内容删掉 4、 添加sftp的专用账户 useradd sftpuser passwd sftpuser usermod -s /bin/false sftpuser 5、 禁用selinux setenforce 0 sed -i "s/^SELINUX\=enforcing/SELINUX\=disabled/g" /etc/selinux/config 6、 重启sftpd服务 systemctl daemon-reload systemctl start sftpd 三、测试SFTP 使用xftp软件,连接修改好的服务器,通过新建的用户和端口连接 连接成功 原文出处:https://www.cnblogs.com/qinyl/p/12194105.html |
CopyRight 2018-2019 实验室设备网 版权所有 |