首页 > 系统相关 >Linux openSSH 只能够使用SFTP 不能使用ssh登陆

Linux openSSH 只能够使用SFTP 不能使用ssh登陆

时间:2024-06-14 23:10:11浏览次数:15  
标签:sshd openSSH 用户 sftp internal ssh Linux SFTP user

实施目标:

1. 用户只能通过sftp访问,不能登录SSH
2. 用户要被锁定在特定的目录下,没有读写其它目录的权限

 

下面开始:
首先修改sshd的配置文件:
#vim /etc/ssh/sshd_config

将该文件的末尾修改如下:
#Subsystem sftp /usr/lib/openssh/sftp-server
#该行(上面这行)注释掉
Subsystem sftp internal-sftp 
Match group sftp
#匹配sftp组,如为单个用户可用:Match user 用户名;  设置此用户登陆时的shell设为/bin/false,这样它就不能用ssh只能用sftp
ChrootDirectory /home/
#指定用户被锁定到的那个目录,为了能够chroot成功,该目录必须属主是root,并且其他用户或组不能写
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
#UsePAM yes
#该行(上面这行)同样注释掉,或者移到Subsystem sftp internal-sftp的上面

下面建立sftp组和一个测试用户user,该用户属于sftp组:
# groupadd sftp
# useradd -d /home/user -m -s /bin/false -g sftp user
# sudo passwd user

重启SSH服务 sshd:
# /etc/init.d/sshd reload    # 此处原文是ssh,我在centos里是sshd

此时,使用带有sftp功能的客户端软件,比如filezilla、flashfxp就可以用testuser使用sftp方式登录服务器了;

标签:sshd,openSSH,用户,sftp,internal,ssh,Linux,SFTP,user
From: https://www.cnblogs.com/surplus/p/18248813

相关文章

  • 使用shell脚本在Linux中管理Java应用程序
    目录前言一、目录结构二、脚本实现1.脚本内容2.使用说明2.1配置脚本2.2脚本部署2.3操作你的Java应用总结前言在日常开发和运维工作中,管理基于Java的应用程序是一项基础且频繁的任务。本文将通过一个示例脚本,展示如何利用Shell脚本简化这一流程,实现Java应用的一键式启动、......
  • fs.1.10 ON rockeylinux8 dockerfile模式
     概述freeswitch是一款简单好用的VOIP开源软交换平台。rockeylinux8docker上编译安装fs.1.10的流程记录,本文使用dockerfile模式。环境dockerengine:Version24.0.6rockylinuxdocker:8freeswitch:v1.10.7dockerfile创建空目录,创建dockerfile文件。github访问经常失败,先......
  • Linux 并发与竞争
    Linux并发与竞争并发与竞争Linux系统是个多任务操作系统,会存在多个任务同时访问同一片内存区域,这些任务可能会相互覆盖这段内存中的数据,造成内存数据混乱。针对这个问题必须要做处理,严重的话可能会导致系统崩溃。现在的Linux系统并发产生的原因很复杂,总结一下有下面几个主要......
  • Linux下的python的部署
    一、python的验证一般情况下liunx系统都会自带python输入python--version便可以查看当前安装的python版本二、Linux系统下安装anaconda步骤大纲:下载anaconda文件→更改文件的权限→开始安装→完成交互问题(更改安装位置)→配置环境变量→更改文件目录权限2.1、下载anacon......
  • 在Linux中,如何停止正在运行的进程?
    在Linux中,停止正在运行的进程可以采取多种方法,具体取决于你希望如何控制进程以及进程的当前状态。以下是一些常用的方法:1.使用kill命令kill命令是最常用的停止进程的方法。你需要知道进程的进程ID(PID)。发送SIGTERM信号(默认):killPID这会给进程发送一个终止信号(SIGTERM),......
  • 在Linux中,什么是initrd镜像?
    在Linux系统中,initrd(initialRAMdisk)镜像是一个非常重要的组件,它用于在启动过程中加载必要的内核模块和驱动,以便系统能够完全引导起来。以下是具体介绍:概念与作用:initrd是一个被压缩的磁盘映像,它在系统启动时被加载到内存中,并且暂时作为根文件系统使用。其主要目的是在系统启......
  • 在Linux中,如何检查某项服务是否在运行?
    在Linux系统中,检查某项服务是否正在运行可以通过多种方法实现。以下是一些常用的命令和步骤:使用systemctl命令:systemctlstatus服务名:此命令可以显示服务的状态,包括是否正在运行、启动日志等信息。例如,检查Apache服务是否运行,可以使用:systemctlstatusapache2.service。......
  • 在Linux中,如何搜索文件?
    在Linux中,搜索文件是一项常见的任务,有多种工具可以用来搜索系统中的文件。以下是一些常用的命令和方法:1.find命令find是最强大的文件搜索命令之一。它可以在指定目录及其子目录下搜索符合条件的文件。基本用法:find[搜索路径][搜索条件]-exec命令\;示例:搜索/......
  • 在Linux中,suid、sgid和sticky bit这几个术语意思?
    在Linux系统中,suid、sgid和stickybit是文件权限位的三种特殊设置,它们提供了额外的安全特性。以下是对这些术语的详细说明:suid(SetUserIDuponexecution):suid位允许一个程序以文件所有者的权限运行,而不是以执行该程序的用户权限运行。当一个可执行文件设置了suid位时,无论哪......
  • Linux语言环境变量LANG设置后不生效
    问题描述在Linux系统中,`LANG`环境变量用于设置默认的语言和区域(locale)信息。设置`LANG=c`通常会将语言设置为Clocale(即POSIXlocale),这意味着系统会使用英语,并且字符集设置为ASCII。所以,设置LANG=C之后,是不是理所应当就该回显英文了。然而,哐哐打脸。现在回想起来,这也......