首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

linux 禁止用户ssh

在Linux系统中,禁止用户通过SSH远程登录可以通过多种方式实现。以下是一些常见的方法及其基础概念、优势、类型、应用场景以及可能的解决方案:

基础概念

SSH(Secure Shell)是一种用于在不安全网络上进行加密通信的网络协议。它允许用户通过安全的远程登录会话来管理服务器。

方法及优势

1. 修改 /etc/passwd 文件

优势:简单直接,适用于临时禁用用户。 类型:文件修改。 应用场景:当需要快速禁用某个用户时。

步骤

代码语言:txt
复制
sudo usermod -s /sbin/nologin username

这会将用户的默认shell设置为 /sbin/nologin,从而阻止其通过SSH登录。

2. 修改 /etc/ssh/sshd_config 文件

优势:全局配置,适用于长期禁用或限制特定用户。 类型:配置文件修改。 应用场景:需要对多个用户进行统一管理时。

步骤: 编辑 /etc/ssh/sshd_config 文件,添加或修改以下行:

代码语言:txt
复制
DenyUsers username1 username2

然后重启SSH服务:

代码语言:txt
复制
sudo systemctl restart sshd

3. 使用PAM(Pluggable Authentication Modules)

优势:灵活且可扩展,适用于复杂的认证需求。 类型:模块化认证。 应用场景:需要基于特定条件(如IP地址、时间等)禁用用户时。

步骤: 编辑 /etc/pam.d/sshd 文件,添加以下行:

代码语言:txt
复制
auth required pam_listfile.so item=user sense=deny file=/etc/ssh/denied_users onerr=succeed

然后在 /etc/ssh/denied_users 文件中列出要禁用的用户:

代码语言:txt
复制
username1
username2

可能遇到的问题及解决方案

问题1:修改配置文件后SSH服务无法启动

原因:可能是语法错误或配置项不正确。 解决方案

  • 检查 /etc/ssh/sshd_config 文件的语法是否正确。
  • 使用 sshd -t 命令进行语法检查。
  • 查看 /var/log/auth.log/var/log/secure 日志文件以获取更多错误信息。

问题2:用户仍然可以登录

原因:可能是配置未生效或存在其他认证方式。 解决方案

  • 确保已重启SSH服务。
  • 检查是否有其他配置文件(如 /etc/pam.d/common-password)覆盖了当前设置。
  • 使用 netstatss 命令检查SSH端口是否被其他进程占用。

示例代码

以下是一个简单的脚本,用于批量禁用多个用户:

代码语言:txt
复制
#!/bin/bash

# 定义要禁用的用户列表
users=("user1" "user2" "user3")

# 修改 /etc/passwd 文件
for user in "${users[@]}"; do
    sudo usermod -s /sbin/nologin $user
done

# 修改 /etc/ssh/sshd_config 文件
echo "DenyUsers $(IFS=,; echo "${users[*]}")" | sudo tee -a /etc/ssh/sshd_config

# 重启SSH服务
sudo systemctl restart sshd

通过以上方法,您可以有效地禁止特定用户通过SSH登录Linux系统,并根据具体需求选择合适的方式。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Linux 禁止用户或 IP通过 SSH 登录

限制用户 SSH 登录1.只允许指定用户进行登录(白名单):在 /etc/ssh/sshd_config 配置文件中设置 AllowUsers 选项,(配置完成需要重启 SSHD 服务)格式如下:AllowUsers...aliyun test@192.168.1.1 ​# 允许 aliyun 和从 192.168.1.1 登录的 test 帐户通过 SSH 登录系统。...2.只拒绝指定用户进行登录(黑名单):在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,(配置完成需要重启SSHD服务)格式如下: DenyUsers aliyun...#Linux系统账户 # 拒绝 aliyun 帐户通过 SSH 登录系统限制 IP SSH 登录除了可以禁止某个用户登录,我们还可以针对固定的IP进行禁止登录,linux 服务器通过设置.../24:allow #允许 192.168.0.1/24 这段 IP 地址的用户登录vim /etc/hosts.allow,添加sshd:ALL # 允许全部的 ssh 登录 hosts.allow

3.8K20

Linux 禁止用户或 IP通过 SSH 登录

限制用户 SSH 登录 ---- 1.只允许指定用户进行登录(白名单): 在 /etc/ssh/sshd_config 配置文件中设置 AllowUsers 选项,(配置完成需要重启 SSHD 服务)格式如下...2.只拒绝指定用户进行登录(黑名单): 在/etc/ssh/sshd_config配置文件中设置DenyUsers选项,(配置完成需要重启SSHD服务)格式如下:    DenyUsers zhangsan...aliyun #Linux系统账户 # 拒绝 zhangsan、aliyun 帐户通过 SSH 登录系统 限制 IP SSH 登录 ---- 除了可以禁止某个用户登录,我们还可以针对固定的...IP进行禁止登录,linux 服务器通过设置 /etc/hosts.allow 和 /etc/hosts.deny这个两个文件, hosts.allow许可大于hosts.deny可以限制或者允许某个或者某段...IP 地址 ssh 登录 sshd:192.168.0.1/24:allow #允许 192.168.0.1/24 这段 IP 地址的用户登录 2.vim /etc/hosts.allow,添加 sshd

8.7K31
  • Linux如何切换到root用户(linux禁止用户切换root)

    1.首先,我们输入pwd命令,查看当前用户目录: 当前用户是xg其中我解释一下[xg@localhost ~] 这个的含义,其中xg指的是当前的用户,localhost指的是主机名,~指的是当前目录,...那你就要输入你所改的那个密码): 注:如果这里默认密码不是当前用户密码的话,可以去查阅资料,知道的可以跟我说,因为我在linux系统下尝试太多,忘记这一步的默认密码了!如果你曾经改过root的密码。...4.接下来我把linux系统关掉,重新开启linux系统,在username下输入root,password下输入上面我们设置的新的unix密码,发现如下图所示,我们的用户变成了root用户了: 5,...所以我把linux系统关掉,再重新开启linux系统,输入用户名xg和xg对应的密码,发现如下图所示: 答案是可以的,xg用户还是可以用的。...root用户,来积累linux学习到的知识了!

    59.4K30

    Linux 踢出其他正在 SSH 登陆用户

    在一些生产平台或者做安全审计的时候往往看到一大堆的用户 SSH 连接到同一台服务器,或者连接后没有正常关闭进程还驻留在系统内。...限制 SSH 连接数与手动断开空闲连接也有必要之举,这里写出手动剔出其他用户的过程。...查看   查看系统当前所有在线用户 [root@apache ~]# w 14:15:41 up 42 days, 56 min, 2 users, load average: 0.07, 0.02...[root@apache ~]# pkill -9 -t pts/1 转载声明   原文转自 《Linux 踢出其他正在 SSH 登陆用户》(作者未知) 版权声明:如无特别声明,本文版权归 仲儿的自留地...(采用 CC BY-NC-SA 4.0 许可协议进行授权) 本文标题:《 Linux 踢出其他正在 SSH 登陆用户 》 本文链接:https://lisz.me/tech/linux/kill-other-sshuser.html

    3.7K20

    修改SSH端口+禁止ROOT登陆

    其实本身Linux已经很安全了,但是如果密码设置的不够复杂,如果说小写+数字共12位以下,你的SSH还用的默认端口,那强力一点的黑客用不上半小时,就能暴力破解你的密码。...所以,最好的方法就是修改掉SSH的端口。...ssh服务 /etc/init.d/sshd restart #centos系统,重启ssh服务命令 /etc/init.d/ssh restart #debian/ubuntu系统,重启ssh服务命令...二、更加安全的设置,禁止ROOT登陆,采用小号登陆再切换ROOT(此方法不能用SFTP上传文件) useradd vpsmm #新建一个小号 passwd vpsmm #给小号设置密码,需要输入完全相同的二次...,注意提示 vi /etc/ssh/sshd_config #修改的文件还是这个 PermitRootLogin yes #把yes,改成no,保存退出,并重启SSH服务(上面有重启命令) 切记,如果没有新建小号

    13.2K226

    Linux 创建用户并配置SSH免密登录

    补一个 Linux 的新用户SSH记录叭~ 1、创建用户 sudo useradd weisheng # weisheng:用户名 用户创建成功会在磁盘生成 /home/weisheng 作为用户根目录...2、目录授权 sudo chmod -R 777 /home/weisheng/  # 先赋予该目录所有访问权限 3、创建授权存放的文件夹 # 进入用户根目录 cd /home/weisheng/...# 创建 .ssh 文件夹 sudo mkdir .ssh 4、在电脑或服务器上创建密钥 ssh-keygen -t rsa # 失败则需要安装 ssh 安装成功后会在用户目录下生成一个 .ssh 的文件夹...(可能隐藏) .ssh 文件夹下包含两个文件 id_ras(私钥)、id_ras.pub(公钥) 5、创建授权文件 # 进入Linux 的用户根目录下的 .ssh 文件夹 cd .ssh # 创建...chmod 700 .ssh/ cd ..

    4.2K30

    在 Linux 中为非 SSH 用户配置 SFTP 环境

    在某些环境中,系统管理员想要允许极少数用户在可以传输文件到Linux机器中,但是不允许使用 SSH。要实现这一目的,我们可以使用SFTP,并为其构建chroot环境。...我们开启一个用户帐号‘Jack’,该用户将被允许在Linux机器上传输文件,但没有ssh访问权限。...译注:这里给用户指定了一个不能登录的 shell,以防止通过 ssh 登录): [root@localhost ~]# useradd -G sftp_users -s /sbin/nologin...对于用户 Jack,该路径就是/home/jack。 ForceCommand internal-sftp – 该参数强制执行内部sftp,并忽略任何~/.ssh/rc文件中的命令。.../home/jack upload/ 步骤:5 现在尝试访问系统并进行测试 尝试通过ssh访问系统 正如下图所示,用户jack通过SFTP登录,而且因为chroot环境不能切换目录。

    4.8K30

    CentOSLinux 禁止root用户远程登录

    在Linux中,root几乎拥有所有的权限,一旦root用户密码外泄,对于服务器而言将是致命的威胁,禁止root用户通过ssh的方式远程登录,这样即使root用户密码外泄也能够保障服务器的安全。...Linux系统为:CentOS 6.5 1:创建一个普通用户doiido并加入相应的组 注意:这里必须要新建一个用户,否则将会造成无法通过远程ssh登录服务器 # groupadd doiido # useradd...-g doiido doiido 更改用户 doiido 的密码 # passwd doiido 2:修改sshd_config文件 # sed -i 's/#PermitRootLogin yes/...PermitRootLogin no/' /etc/ssh/sshd_config 3:重启ssh服务 # service sshd restart 这样即使root用户密码泄漏,别人也无法通过root...用户直接连接服务器 Linux下禁止root用户远程登录  http://www.linuxidc.com/Linux/2012-09/70892.htm

    3.3K20

    lnmp - BasicAuth、Mysql、Linux的用户管理、ssh免密登录

    概述最近总结了几个开发和安全方面基础的小技巧,账号安全问题一直不能得到足够的重视,会造成后面开发和管理上的困难,下面介绍Basic Auth、Linux用户的管理和ssh免密登录三个知识点。...2、编码认证信息: 客户端收到 401 响应后,会提示用户输入用户名和密码。...,不推荐直接使用root来直接操作操作,用户权限遵循最小权限原则,新增一个开发用户来管理,下面我将以新增一个名为stark的用户作为演示,把stark这个用户添加进www组,这个都是Linux操作上最常用的操作...CREATE USER 'zcc'@'%';-- 赋予用户角色GRANT 'app_dev' TO 'zcc'@'%';-- 刷新权限FLUSH PRIVILEGES;ssh免密登录在Linux系统中,...运行以下命令:ssh-copy-id user@remotehost将user替换为你的远程服务器用户名,将remotehost替换为远程服务器的IP地址或域名。

    16976
    领券