Linux主机用户登陆安全配置

news/2025/2/26 10:10:52

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.niftyadmin.cn/n/5868530.html

相关文章

从零到一:如何用阿里云百炼和火山引擎搭建专属 AI 助手(DeepSeek)?

本文首发:从零到一:如何用阿里云百炼和火山引擎搭建专属 AI 助手(DeepSeek)? 阿里云百炼和火山引擎都推出了免费的 DeepSeek 模型体验额度,今天我和大家一起搭建一个本地的专属 AI 助手。  阿里云百炼为 …

单链表删除算法(p=L; j=0;与p=p->next;j=1的辨析)

算法描述 Status ListDelete&#xff08;LinkList &L,int i&#xff09; { //在带头结点的单链表 L 中&#xff0c;删除第 i 个元素 pL; j0; while ((p->next) && (j<i-1)) {pp->next; j;} if (!(p->next)||(j>i-1)) return ERROR; qp->nex…

【Docker基础】理解 Docker:本质、性质、架构与核心组件

文章目录 Docker 本质Docker 的引擎迭代Docker 和虚拟机的区别Docker 为什么比虚拟机资源利用率高&#xff0c;速度快&#xff1f;Docker 和 JVM 虚拟化的区别Docker 版本1. LXC (Linux Containers)2. libcontainer3. Moby4. docker-ce5. docker-ee总结&#xff1a; Docker 架构…

DeepSeek个人知识库

deepseek构建个人知识库 安装软件链接 : 安装链接 先在本地把deepseek跑起来&#xff0c;本地部署deepseek见前文链接: 本地部署ollama # 目前软件只支持1.5b小模型&#xff0c;将就着用 ollama run deepseek-r1:1.5b等服务器启动后开启软件 上传文件 输入消息 &#xff08…

结构型模式 - 外观模式 (Facade)

结构型模式 - 外观模式 (Facade) 又名门面模式,通过为多个子系统提供一个一致的接口,使得子系统使用起来更加容易. 外观模式是“迪米特法则”的典型应用. // CPU 类&#xff0c;代表 CPU 子系统 class CPU {public void start() {System.out.println("CPU 启动");}p…

ubuntu离线安装Ollama并部署Llama3.1 70B INT4

文章目录 1.下载Ollama2. 下载安装Ollama的安装命令文件install.sh3.安装并验证Ollama4.下载所需要的大模型文件4.1 加载.GGUF文件&#xff08;推荐、更容易&#xff09;4.2 加载.Safetensors文件&#xff08;不建议使用&#xff09; 5.配置大模型文件 参考&#xff1a; 1、 如…

文件下载技术的终极选择:`<a>` 标签 vs File Saver.js

文件下载技术的终极选择&#xff1a;<a> 标签 vs File Saver.js 在 Web 开发中&#xff0c;文件下载看似简单&#xff0c;实则暗藏玄机。工作种常纠结于 <a> 标签的原生下载和 File Saver.js 等插件的灵活控制之间。本文将从原理、优缺点、场景对比到实战技巧&…

【Elasticsearch】script_fields 和 runtime_fields的区别

script_fields和runtime_fields都是 Elasticsearch 中用于动态计算字段值的功能&#xff0c;但它们在实现方式、应用场景和性能表现上存在显著区别。以下是两者的详细对比&#xff1a; 1.定义和应用场景 • script_fields&#xff1a; • 定义&#xff1a;通过 Painless 脚本…