sftp端口改了ssh受影响吗_由于系统错误true端口上用户

sftp端口改了ssh受影响吗_由于系统错误true端口上用户能够完成sftp服务的部署,且实现ssh和sftp的端口分离,不使用默认的端口,sftp用户的权限只可以访问该用户的家目录里的文件和其下的子目录,实现权限控制。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

学习目标:

能够完成sftp服务的部署,且实现ssh和sftp的端口分离,不使用默认的端口,sftp用户的权限只可以访问该用户的家目录里的文件和其下的子目录,实现权限控制。

学习内容:

SFTP是SSH的一部分,SFTP没有单独的守护进程,它必须使用SSHD守护进程(端口号默认是22)来完成相应的连接操作,所以从某种意义上来说,SFTP并不像是一个服务器程序,而更像是一个客户端程序。

检查sftp 服务是否可用​

1.1、systemctl status sshd

1.2、systemctl status sftpd

系统内开启ssh服务和sftp服务都是通过/usr/sbin/sshd这个后台程序监听22端口,而sftp服务作为一个子服务,是通过/etc/ssh/sshd_config配置文件中的Subsystem实现的,如果没有配置Subsystem参数,则系统是不能进行sftp访问的

从ssh服务分离sftp服务

  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

  1. 修改配置文件
    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

  1. 修改/etc/ssh/目录下的sftpd_config文件
    vim /etc/ssh/sftpd_config

下面标红的需要执行,标绿的可不执行,看自己是否需要单独设置允许root登录和其他用户怎么管理而定

①找到第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
ChrootDirectory /home/sftpuser/ ##此配置是指定sftp用户的家目录,可访问的目录

drwxr-xr-x.  4 root     root      4096 Aug  9 15:16 home

drwxr-xr-x 3 root root 4096 Aug  9 16:38 sftpuser

drwxrwxrwx 3 sftpuser sftpuser 4096 Aug  9 19:42 csm

ForceCommand internal-sftp
X11Forwarding no
AllowTcpForwarding no

就是注释132行,并将132行下面,添加5行内容。

  1. 清空/var/run/目录下的sftpd.pid文件内容
    echo “” > /var/run/sftpd.pid
  2. 添加sftp的专用账户
    useradd sftpuser
    passwd sftpuser
    usermod -s /bin/false sftpuser
  3. 重启sftpd服务
    systemctl daemon-reload
    systemctl start sftpd
  4. 查看ssh服务和sftp服务状态
    systemctl status sshd
    systemctl status sftpd
  5. 查看端口分离情况
    lsof -i:22
    lsof -i:20022
  6. 登录验证
    sftp -P 20022 user @serverip
    sftp -P 22 user @serverip

说明:
如果后续不想让用户通过22好端口登录服务,可修改、etc/ssh/sshd_config文件,注释掉
#Subsystem sftp /usr/libexec/openssh/sftp-server
然后重启ssh服务

学习产出:

能够完成sftp服务的搭建并实现端口分离,可以随意自定义端口

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/193895.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • etl算法详解_数据拉链处理什么意思

    etl算法详解_数据拉链处理什么意思所谓拉链,就是记录历史。记录一个事物从开始,一直到当前状态的所有变化的信息。   在历史表中对客户的一生的记录可能就这样几条记录,避免了按每一天记录客户状态造成的海量存储的问题:(NAME)人名(START-DATE)开始日期(END-DT)结束日期(STAT)状态    client             19000101                       

    2022年10月16日
    3
  • 订单支付功能对接支付宝支付接口「建议收藏」

    订单支付功能对接支付宝支付接口「建议收藏」求助:这张GIF的效果动图整了一个多小时,没找到好的编辑软件,都太难用了。如果恰巧看到这篇文章有好的GIF编辑或者录制软件,请推荐一个!万谢订单支付功能是购物的最后一个环节,本文将通过对接支付宝的接口,实现支付宝付款功能。蚂蚁金服开放平台专门为开发者的网站,包含了支付宝中涉及的很多功能接口,本文的功能实现是在沙箱环境中进行,蚂蚁沙箱环境(Beta)是协助开发者进行接口功能开发及主要功能联

    2022年5月3日
    160
  • MOXA串口服务器6450串口引脚图

    大家好,又见面了,我是你们的朋友全栈君。

    2022年4月8日
    34
  • 如何安装Pycharm_pycharm安装教程2020

    如何安装Pycharm_pycharm安装教程2020安装方法:1、安装配置好Python环境;2、从官网下载pycharm安装程序;3、直接双击下载好的exe文件,进入安装向导界面,按照指示一步步操作;4、点击Install进行安装,等待安装完成后,点击Finish结束安装即可。本教程操作环境:windows7系统、Python3.5.2版本、DellG3电脑。首先我们来安装python1、首先进入网站下载:点击打开链接(或自己输入网址http…

    2022年8月25日
    5
  • mysql获取最近一条数据_mysql显示所有数据库

    mysql获取最近一条数据_mysql显示所有数据库关于mysql查询最近一条记录最近项目中遇到需要查询记录当前时间最近的一条记录的问题,开始感觉无从下手,后来逐步发现了三种解决方案。下策——查询出结果后将时间排序后取第一条select*fromawheretime<=”2017-03-2919:30:36″orderbytimedesclimit1这样做虽然可以取出当前时间最近的一条记录,但是一次查询需要将表遍历一遍,对于…

    2022年9月7日
    2
  • docker(2)CentOS 7安装docker环境[通俗易懂]

    docker(2)CentOS 7安装docker环境[通俗易懂]前言前面一篇学了mac安装docker,这篇来学习在linux上安装docker环境准备Docker支持以下的CentOS版本,目前,CentOS仅发行版本中的内核支持Docker。Doc

    2022年7月28日
    5

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号