Linux主机用户登陆安全配置

news2025/2/26 8:21:39

Linux主机用户登陆安全配置

在Linux主机上进行用户登录安全配置是一个重要的安全措施,可以防止未经授权的访问。以下是如何创建用户hbu、赋予其sudo权限,以及禁止root用户SSH登录,以及通过ssh key管理主机用户登陆。

创建用户hbu

使用具有root权限的账户(或者通过sudo)登录到你的Linux主机,通过useradd命令创建新用户hbu,并设置密码。

# 创建用户
sudo useradd -m hbu
# passwd命令为新用户设置密码。
sudo passwd hbu

备注:如果采用root用户,则不需要加sudo;useradd创建用户命令中的参数-m选项,会自动为用户创建主目录。

赋予用户sudo权限

1.备份sudo配置文件/etc/sudoers

sudo cp /etc/sudoers /root/sudoers.bak

2.编辑sudoers配置文件

sudo visudo

3.添加配置项

# User privilege specification
root    ALL=(ALL:ALL) ALL
hbu ALL=(ALL:ALL) NOPASSWD:ALL

4.保存并退出。
在visudo中,你可以按Ctrl+X,然后按Y保存修改。

备注:visudo默认采用nano编辑器,如果不熟悉操作命令,可以先为配置文件/etc/sudoers增加写权限,然后修改配置内容,保存修改并退出,最后取消/etc/sudoers写权限

禁止root用户ssh登陆

在Linux系统中,出于安全考虑不直接允许root用户通过SSH远程登录。相反,用户可以使用一个普通用户账户,并通过sudo命令来执行需要root权限的命令。这样既可以提高安全性,又能保持系统管理的灵活性。

以下是一些禁止root用户通过SSH登录的方法:

方法1:修改sshd配置

1.打开SSH配置文件

sudo vim /etc/ssh/sshd_config

2.在文件中找到或添加以下行

PermitRootLogin no

保存并关闭文件。

3.重启SSH服务以使更改生效

sudo systemctl restart sshd
# 或者
sudo service ssh restart

方法2:使用PAM(Pluggable Authentication Modules)限制

1.创建一个PAM配置文件来限制root登录:

sudo nano /etc/pam.d/sshd_root_disable

2.在文件中添加以下内容:

auth       required     pam_access.so list=root deny

3.修改SSH配置文件,指向新的PAM配置文件:

sudo nano /etc/ssh/sshd_config
#添加或修改以下行:
UsePAM yes
AccountRequiredPam root_disable

保存并关闭文件。

4.重启SSH服务

sudo systemctl restart sshd
# 或者
sudo service ssh restart

配置用户hbu免密登陆

在Linux系统中配置SSH免密登录,主要涉及到生成SSH密钥对,然后将公钥添加到远程服务器的~/.ssh/authorized_keys文件。配置wa完成后,用户就可以无密码登录到远程服务器。

以下步骤适用于大多数基于Linux的操作系统。

1.生成SSH密钥对

首先,在本地机器上生成SSH密钥对。打开终端,执行以下命令:

ssh-keygen -t rsa -b 2048
  • -t rsa指定密钥类型为RSA。

  • -b 2048 指定密钥长度为2048位,这是推荐的长度。

执行上述命令后,系统会询问保存密钥的位置(默认为~/.ssh/id_rsa)和输入密码(可选)。如果你不需要密码保护密钥,直接按回车即可。

2.将公钥复制到远程服务器

生成密钥对后,使用ssh-copy-id将公钥(id_rsa.pub)添加到远程服务器的~/.ssh/authorized_keys文件中。

# ssh-copy-id 用户名@远程服务器地址
ssh-copy-id user@192.168.1.100

3.配置SSH免密登录(可选)

为了确保每次都能免密登录,你可以在本地机器的~/.ssh/config文件中添加以下配置:

Host 远程服务器别名
    HostName 远程服务器地址
    User 用户名
    IdentityFile ~/.ssh/id_rsa
    StrictHostKeyChecking no

将远程服务器别名替换为你自定义的名称,例如my_server,将远程服务器地址和用户名替换为实际的服务器地址和用户名。这样,你就可以使用别名来免密登录了:

# ssh 远程服务器别名
sshl my_server

注意:

  • 确保远程服务器的.ssh目录和authorized_keys文件的权限设置正确。

  • 如果在添加公钥后仍然无法免密登录,检查是否禁用了密码认证(在/etc/ssh/sshd_config中设置PasswordAuthentication no),并确保SSH服务已重新启动。

  • 本地配置使用StrictHostKeyChecking no可以避免首次连接时出现主机密钥验证的提示,但这会降低安全性。建议仅在信任网络中使用此设置。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2306252.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Go小技巧易错点100例(二十三)

本期分享: 1.Go Module控制Go版本 2.int转string注意事项 3.Go项目查看mod依赖关系 Go Module控制Go版本 当我们开发Go项目涉及到两台及以上的机器,而且它们又刚好是不同操作系统的时候,可能就要把代码挪到另一台机器上重新编译&#xff…

使用Docker Desktop部署GitLab

1. 环境准备 确保Windows 10/11系统支持虚拟化技术(需在BIOS中开启Intel VT-x/AMD-V)内存建议≥8GB,存储空间≥100GB 2. 安装Docker Desktop 访问Docker官网下载安装包安装时勾选"Use WSL 2 instead of Hyper-V"(推荐…

MySQL数据库连接池泄露导致MySQL Server超时关闭连接

前言 最近做项目,发现老项目出现xxx,这个错误其实很简单,出现在MySQL数据库Server端对长时间没有使用的client连接执行清楚处理,因为是druid数据库,且在github也出现这样的issue:The last packet successf…

力扣 下一个排列

交换位置,双指针,排序。 题目 下一个排列即在组成的排列中的下一个大的数,然后当这个排列为降序时即这个排列最大,因为大的数在前面,降序排列的下一个数即升序。所以,要是想找到当前排列的下一个排列&…

事务管理-03.事务进阶-propagation属性

一.工具 在介绍事务的propagation属性前,我们首先介绍一个工具:Grep Console,该工具用来实现将idea输出出的日志信息进行选择性的高亮展示。 当要选择日志中的某一部分高亮展示时,只需要右键点击Add Highlight即可。此时日志中所…

Pretraining Language Models with Text-Attributed Heterogeneous Graphs

Pretraining Language Models with Text-Attributed Heterogeneous Graphs EMNLP 推荐指数:#paper/⭐⭐#​ 贡献: 我们研究了在更复杂的数据结构上预训练LM的问题,即,TAHG。与大多数只能从每个节点的文本描述中学习的PLM不同&…

模型疑问图像、嵌入、推理类型与说明

在进行模型使用的时候,有时候会碰到模型存在模型类型需要选择的情况,如下面deepseek模型选择模型类型图像、嵌入、推理。 以下是针对此问题的了解与说明: DeepSeek 模型是一个多模态人工智能模型,能够同时处理图像和文本数据,并在多种任务中实现高效的嵌入表示和推理。以下…

WiFi IEEE 802.11协议精读:IEEE 802.11-2007,6,MAC service definition MAC服务定义

继续精读IEEE 802.11-2007 6,MAC service definition MAC服务定义 6.1 MAC服务概述 6.1.1 数据服务 此服务为对等逻辑链路控制(LLC)实体提供交换MAC服务数据单元(MSDU)的能力。为支持此服务,本地媒体访…

Visual Studio Code 跨平台安装与配置指南(附官方下载链接)

一、软件定位与核心功能 Visual Studio Code(简称VS Code)是微软开发的开源跨平台代码编辑器,支持超过50种编程语言的智能补全、调试和版本控制功能。2025版本新增AI辅助编程模块,可自动生成单元测试代码和API文档注释。 二、下载…

deepseek自动化代码生成

使用流程 效果第一步:注册生成各种大模型的API第二步:注册成功后生成API第三步:下载vscode在vscode中下载agent,这里推荐使用cline 第四步:安装完成后,设置模型信息第一步选择API provider: Ope…

OceanBase + DeepSeek:5分钟免费搭建企业知识库

过去一个月,DeepSeek 在全球范围内引发了热烈讨论。其突破性的 AI 能力使其日流量显著超越 Claude 和 Perplexity,吸引了众多企业和技术专家的高度关注。随着 AI 技术的不断进步,企业正面临一场深刻的智能化变革——如何通过 AI 重构业务&…

水利工程安全包括哪几个方面

水利工程安全培训的内容主要包括以下几个方面: 基础知识和技能培训 : 法律法规 :学习水利工程相关的安全生产法律法规,了解安全生产标准及规范。 事故案例 :通过分析事故案例,了解事故原因和教训&#x…

基于 sklearn 的均值偏移聚类算法的应用

基于 sklearn 的均值偏移聚类算法的应用 在机器学习和数据挖掘中,聚类算法是一类非常重要的无监督学习方法。它的目的是将数据集中的数据点划分为若干个类,使得同一类的样本点彼此相似,而不同类的样本点相互之间差异较大。均值偏移聚类&…

国产OS上完整编译Qt5.15、搭建基本开发环境需要的库

近期有师弟问我国产OS安装Qt5.15编译老是不完整,不是没声音,就是没视频,或者没有xcb。通过QEMU模拟Arm64,闲来20几天摸索,完整编译了Qt5.15,并编译成功了我的SDR玩具taskBus。 1.主要结论: 该O…

MyBatis简明教程

MyBatis 是一个用于简化数据库操作的持久层框架,它的核心思想是 将 SQL 与 Java 代码解耦,让开发者专注于 SQL 的编写,同时自动处理重复的数据库操作步骤。 一、核心思想:SQL 与 Java 解耦 传统 JDBC 需要开发者手动管理数据库连…

有什么区别?Elastic 和 Splunk 数据层

作者:来自 Elastic Ugo Sangiorgi, Matt Wehle 了解 Elastic 和 Splunk 数据管理方法之间的主要区别,以便做出明智的决策,实现高效的数据处理 在数据管理领域,在讨论如何根据不同的性能要求提供和/或保留数据时,经常会…

BGP状态和机制

BGP邻居优化 为了增加稳定性,通常建议实验回环口来建立邻居。更新源:建立邻居和邻居所学习到的路由的下一跳。多跳:EBGP邻居建立默认选哟直连,因为TTL=1,如果非直连,必须修改TTL。命令备注peer 2.2.2.2 connect-interface lo1配置更新源peer 2.2.2.2 ebgp-max-hop 2配置T…

【电机控制器】PY32F00BF15U6TR-从KEIL5中计算资源消耗资源

【电机控制器】PY32F00BF15U6TR-从KEIL5中计算资源消耗资源 文章目录 [TOC](文章目录) 前言一、MCU芯片手册二、实验三、实验结论四、参考资料总结 前言 使用工具: 1.KEIL5编译器 提示:以下是本篇文章正文内容,下面案例可供参考 一、MCU芯片…

python实战项目58:采集蜻蜓FM热门音频top排行榜

python实战项目58:采集蜻蜓FM热门音频top排行榜 一、采集流程介绍二、数据接口采集三、使用xpath提取页面数据1、抓包,找到数据接口2、发送请求,获取数据3、提取数据4、保存数据一、采集流程介绍 蜻蜓FM热门音频top排行榜的链接为: https://m.qingting.fm/rank/,首页如下图…

STM32【3】芯片的底层组成概论

关于单片机的组成 单片机的意思是,小小计算电脑,麻雀虽小,五脏俱全,里面包含了CPU,ROM,RAM,各种外设。 CPU地位最高,可以访问ROM和RAM,Flash,GPIO等外设&…