Linux 服务器初始化解析和ssh密钥交换的介绍

目录

2. SSH 基于密钥交换的介绍和原理

2.1 核心优势

2.2 密钥交换原理(非对称加密体系)

2.3 基础配置步骤

3. 服务器初始化

3.1 安装 yum 网络源

3.1.1 背景说明

3.1.2 实操步骤

3.2 安装运维的必备工具

3.2.1 工具清单

3.2.2 批量安装命令

3.3 网络验证

3.3.1 验证目的

3.3.2 实操步骤

3.4 配置主机名及主机映射

3.4.1 配置主机名(按角色命名)

3.4.2 设置主机映射(加速内网访问)

3.5 时间同步(chronyd)

3.5.1 同步必要性

3.5.2 实操步骤

3.6 防火墙设置

3.6.1 防火墙选择

3.6.2 实操步骤

Linux 服务器初始化总结


2. SSH 基于密钥交换的介绍和原理

2.1 核心优势

SSH是企业级服务器远程管理的标准协议,支持密码认证与密钥认证,其中密钥交换认证因以下优势成为企业首选:

对比维度

密码认证

密钥交换认证

安全性

密码通过网络明文传输,易被抓包截获;密码复杂度不足时易被暴力破解

基于非对称加密,仅公钥公开传输,私钥本地保管,无明文泄露风险

运维效率

每次登录需手动输入密码,无法适配自动化脚本

支持免密码登录,可集成到 Shell 脚本实现批量管理

权限控制

仅依赖密码,无法限制登录 IP,权限粒度粗

可绑定登录 IP,支持精细化授权

2.2 密钥交换原理(非对称加密体系)

SSH 密钥交换基于 “公钥 - 私钥” 非对称加密技术,整个流程无需传输密码,具体原理如下:

密钥对生成:客户端通过ssh-keygen工具生成一对密钥 —— 公钥(id_rsa.pub,可公开)和私钥(id_rsa,需设置密码保护并仅保存在客户端本地,不可泄露)。

公钥上传服务器:客户端将公钥追加到服务器目标用户的~/.ssh/authorized_keys文件中(该文件为 SSH 认证白名单,记录所有允许登录的客户端公钥)。

认证与连接建立

客户端发起 SSH 连接请求,服务器生成随机数,用客户端公钥加密后发送给客户端;

客户端用本地私钥解密随机数,再用服务器公钥(默认内置)加密后回传服务器;

服务器验证解密结果,若与原始随机数一致,则认证通过,后续数据通过临时会话密钥加密传输。

2.3 基础配置步骤

在客户端本地生成一对儿密钥,输入 ssh-keygen -t rsa -P '' -f /root/.ssh/id_rsa,先分别解析一下这些参数

     ssh-keygen​​:SSH 密钥生成工具

     ​​-t rsa​​:指定密钥类型为 RSA(目前推荐使用 -t ed25519更安全)

     ​​-P ''​​:设置空密码(两个单引号之间无内容)

     ​​-f /root/.ssh/id_rsa​​:指定密钥保存路径(私钥 /root/.ssh/id_rsa,公钥会追加 .pub)

2.在完成后,我们在在客户端将公钥复制到要登录的远程主机的某用户的家目录下的特定文件中,输入:ssh-copy-id -i /root/.ssh/id_rsa.pub root@10.0.0.250

这里输入yes

然后输入密码(第一次链接需要,后续不用)然后输入:ssh root@10.0.0.250连接要登入的主机

发现不用输入密码就完成了

3. 服务器初始化

服务器初始化是企业新服务器部署的基础流程,旨在统一系统环境、保障基础可用性与安全性,具体包含以下六大操作模块:

3.1 安装 yum 网络源

3.1.1 背景说明

yum是 CentOS 系列服务器的包管理工具,默认官方源位于国外,国内访问速度慢(常出现超时、下载中断)。企业需替换为国内优质镜像源(如阿里云、网易云),确保软件包下载高效稳定。

3.1.2 实操步骤

  1.备份原有的源文件,以防万一

  2.下载国内镜像源配置(以阿里云源为例,覆盖范围广、更新及时)输入:curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo

清除旧缓存并生成新缓存输入: yum clean all && yum makecache

3.2 安装运维的必备工具

3.2.1 工具清单

运维需统一安装基础工具,确保所有服务器环境一致,提升运维效率,工具清单如下:

vim-enhanced    # 加强版的vi编辑器

    wget            # 命令行下载工具

    curl             # 网络数据传输工具

    telnet         # 网络诊断工具

    net-tools       # 包含ifconfig等网络工具

    bash-completion # 命令自动补全增强

    lsof            # 列出打开的文件

    sysstat         # 系统性能监控工具(包含iostat, sar等)

    htop             # 交互式进程查看器(比top更好用)

    tree             # 以树状图列出目录内容

    git             # 版本控制工具

    unzip            # 解压zip文件

    lrzsz             # 提供sz(下载)、rz(上传)命令,方便Xshell等终端传输文件

3.2.2 批量安装命令

yum install -y vim-enhanced wget curl telnet net-tools bash-completio lsof sysstat htop tree git unzip lrzsz       

3.3 网络验证

3.3.1 验证目的

确保服务器网络通畅,可正常与局域网设备、外网服务通信,避免后续业务部署因网络问题中断。

3.3.2 实操步骤

1. 查看当前IP地址,确认网络接口已启动,输入ip addr show或者ifconfig

分阶段测试连通性

测试局域网连通(ping 网关,验证内网可达)

测试外网连通(ping 公网域名,验证 DNS 解析与外网可达)

常见问题排查

IP 配置错误 → 编辑网卡配置文件/etc/sysconfig/network-scripts/ifcfg-ens33,修改IPADDR(IP 地址)、NETMASK(子网掩码)、GATEWAY(网关),重启网络:systemctl restart network

3.4 配置主机名及主机映射

3.4.1 配置主机名(按角色命名)

企业服务器需按业务角色命名(如 web、db、app),便于运维人员识别服务器用途,避免管理混乱。

临时生效(重启后失效):hostname web-01

永久生效(无需重启,重新登录即可刷新):hostnamectl set-hostname web-01

3.4.2 设置主机映射(加速内网访问)

主机映射通过本地文件/etc/hosts记录 IP 与主机名的对应关系,优先级高于 DNS 解析,可减少内网服务器间的 DNS 查询开销,提升访问速度。

编辑/etc/hosts文件:vim /etc/hosts    并添加主机名:10.0.0.251(你的主机ip地址)主机名

  1. 验证:在任意服务器上执行ping web-01,可直接解析到10.0.0.251

3.5 时间同步(chronyd)

3.5.1 同步必要性

企业服务器时间不一致会导致严重问题:日志时间错乱(无法追溯故障时序)、分布式服务异常(如定时任务执行偏差、分布式事务超时)、证书校验失败(证书有效期基于时间判断)。需通过 chronyd 工具同步到标准时间源。

3.5.2 实操步骤

安装 chronyd:yum install -y chrony

启动服务并设置开机自启:systemctl start chronyd,systemctl enable chronyd

输入chronyc -a makestep强制与服务器同步,然后输入 date 查看时间状态

3.6 防火墙设置

3.6.1 防火墙选择

  我们使用iptables来示例

3.6.2 实操步骤

1.停止并禁用firewalld,输入 systemctl stop firewalld 和 systemctl disable firewalld

2.安装并自启动 Iptables Services,输入yum install -y iptables-services 和 systemctl start iptables

3.设置默认策略

在添加任何允许规则之前,先设置最严格的默认策略:拒绝所有传入连接,允许所有传出连接,允许转发。最好在本地控制台操作。然后输入以下三步

iptables -P INPUT DROP    默认拒绝所有进来的流量
iptables -P FORWARD DROP   默认拒绝所有转发的流量
iptables -P OUTPUT ACCEPT  默认允许所有出去的流量

2.允许所有本地回环接口的通信,这是系统内部通信所必需的:输入

iptables -A INPUT -i lo -j ACCEPT

3.允许已建立的和相关联的连接通过这条规则至关重要!它允许对外请求的返回数据包进入,否则无法正常上网和使用大多数服务,输入:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

第 2步:添加具体的放行规则(按需开放)

1. 比如允许SSH连接 (端口22) - 这是远程管理的生命线,输入:

sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT

然后就可以远程链接了

2.允许PING (ICMP协议),便于网络诊断:iptables -A INPUT -p icmp -j ACCEPT

3. 允许HTTP (80) 和 HTTPS (443)
 iptables -A INPUT -p tcp --dport 80 -j ACCEPT
 iptables -A INPUT -p tcp --dport 443 -j ACCEPT

第 3 步:保存规则并重启服务

保存当前内存中的规则到 /etc/sysconfig/iptables 文件,输入: service iptables save

然后重启iptables服务,确保配置加载无误,可以看到我们的配置已经保存了下来

然后输入: systemctl status iptables 检查iptables服务状态

Linux 服务器初始化总结

本文档围绕 Linux 服务器初始化的核心需求,从安全机制、远程认证及基础配置三大维度展开,系统覆盖了企业级服务器初始化的关键环节,为服务器部署提供标准化参考。

在安全机制方面,SELinux 作为 Linux 内核级强制访问控制工具,通过 Enforcing、Permissive、Disabled 三种模式实现细粒度安全管控,生产环境推荐使用 Enforcing 模式,可通过getenforce查看模式、setenforce临时切换、修改配置文件永久调整,从内核层保障服务器资源不被越权访问。

远程认证环节,SSH 基于密钥交换的认证方式优势显著。相比密码认证,其通过非对称加密(公钥公开、私钥本地保管)避免密码泄露风险,支持免密码登录以适配自动化运维,还能绑定登录 IP 实现精细化授权。核心流程为客户端生成密钥对、上传公钥至服务器、通过密钥解密验证建立连接,是企业远程管理服务器的首选方案。

服务器初始化的六大基础配置模块,是保障服务器可用性与一致性的核心。其一,替换 yum 网络源为国内镜像(如阿里云),通过备份默认源、下载新源配置、清理缓存,解决官方源下载慢问题;其二,批量安装 vim、net-tools、lsof 等运维必备工具,统一服务器环境,提升运维效率;其三,通过查看网卡状态、ping 网关与公网域名验证网络,排查 IP 或 DNS 配置问题,确保网络通畅;其四,按业务角色配置主机名(如 web-01),并在/etc/hosts设置主机映射,减少 DNS 查询开销,加速内网访问;其五,使用 chronyd 工具同步时间,优先对接企业内部 NTP 源,保障服务器时间一致,避免日志错乱、服务异常;其六,基于 firewalld 配置防火墙,仅开放业务必需端口(如 SSH 22、Web 80/443),整体而言,Linux 服务器初始化通过安全机制加固、可靠远程认证及标准化基础配置,为后续业务部署奠定稳定、安全、高效的系统基础,是企业级 Linux 服务器运维的核心前置流程。

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

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

相关文章

web渗透ASP.NET(Webform)反序列化漏洞

web渗透ASP.NET(Webform)反序列化漏洞1)ASP.NET(Webform)反序列化漏洞ASP.NET(Webform) 反序列化漏洞的核心触发点是 Webform 框架中的VIEWSTATE参数 —— 该参数用于存储页面控件状态数据,默认以 Base64 编码传输,内部包含序列化的对象数据。…

Android FrameWork - 开机启动 SystemServer 进程

基于安卓 12 源码分析相关类:frameworks/base/core/java/com/android/internal/os/ZygoteInit.java frameworks/base/core/java/com/android/internal/os/Zygote.java frameworks/base/core/java/com/android/internal/os/RuntimeInit.java frameworks/base/service…

C++:list容器--模拟实现(下篇)

1. 模拟实现 list 一些常用接口// list.h #pragma once #include <assert.h> #include "Iterator.h"namespace room {template<class T>struct list_node{list_node<T>* _next;list_node<T>* _prev;T _data;list_node(const T& x T()):…

边缘计算:一场由物理定律发起的“计算革命”

专栏引言:在前面的文章中,我们探讨了云计算如何将计算资源变成了“数字水电煤”,构建了一个强大的中心化数字帝国。然而,当这个帝国试图将它的触角伸向物理世界的每一个角落时,却遭遇了两位“上古之神”的无情阻击——光速与带宽。今天,我们将聚焦于一场由物理定律发起的…

量化模型部署工具llama.cpp

量化模型部署工具llama.cppllama.cppllama.cpp 是什么使用场景是什么如何使用&#xff1f;第 1 步&#xff1a;获取量化模型第 2 步&#xff1a;编译 llama.cpp第 3 步&#xff1a;运行推理完整 Demo&#xff1a;与 Llama 3 对话进阶使用&#xff1a;Python 集成总结概念解释1.…

【光照】[光照模型]发展里程碑时间线

【从UnityURP开始探索游戏渲染】专栏-直达 图形学光照模型发展史&#xff1a;技术演进与里程碑 section 基础奠基期(1960s-1970s) 1967 &#xff1a; Lambert模型(漫反射) - Bui Tuong Phong提出1971 &#xff1a; Gouraud着色 - Henri Gouraud发明顶点插值着色1973 &#xf…

【从零开始java学习|第十篇】面向对象

目录 一、面向对象介绍 二、类和对象 1. 类&#xff08;Class&#xff09;&#xff1a;对象的模板 2. 对象&#xff08;Object&#xff09;&#xff1a;类的实例 三、封装 1. 封装的概念 2. 封装的优势 四、就近原则和 this 关键字 1. 就近原则 2. this 关键字 五、…

Spark算子调优

Spark中可用下面的算子对数据计算进行优化处理&#xff0c;包括&#xff1a; mapPartition&#xff1a;一次处理一个分区数据&#xff0c;能够使用mapPartition的尽量使用&#xff0c;但是使用时会一次性读取整个分区数据到内存&#xff0c;占内存很大&#xff0c;同理还有fore…

码农特供版《消费者权益保护法》逆向工程指北——附源码级注释与异常处理方案

尊敬的审核&#xff1a; 本人文章《码农特供版〈消费者权益保护法〉逆向工程指北——附源码级注释与异常处理方案》 1. 纯属技术交流&#xff0c;无任何违法内容 2. 所有法律引用均来自公开条文 3. 请依据《网络安全法》第12条“不得无故删除合法内容”处理 附&#xff1a;本文…

MQTT 连接建立与断开流程详解(二)

三、核心机制与最佳实践&#xff08;一&#xff09;会话管理与 QoS 保障Clean Session vs 持久会话&#xff1a;在 MQTT 连接中&#xff0c;会话管理是一个重要的概念&#xff0c;其中 Clean Session 和持久会话是两种不同的会话模式。Clean Session&#xff0c;当设置为 1 时&…

[光学原理与应用-332]:ZEMAX - 序列模式与非序列模式的本质、比较

序列模式&#xff08;Sequential Mode&#xff09;与非序列模式&#xff08;Non-Sequential Mode&#xff09;是ZEMAX光学设计软件中的两种核心设计模式&#xff0c;二者在光路定义、分析工具、应用场景等方面存在本质差异。以下是两者的详细比较&#xff1a;一、本质差异光路定…

WeakAuras Lua Script (My Version)

分享下我的WA的简约配置&#xff0c;大多数都是团队框架高亮&#xff0c;辅助大脚DBM监控 表格&#xff1a; WeakAuras Lua Script &#xff1c;BiaoGe&#xff1e;_wa拍卖字符串-CSDN博客 ICC 监控&#xff0c;只要团队框架监控 WeakAuras Lua Script ICC &#xff08;Barne…

【Python+requests】解决Python requests中的ProxyError:SSL版本错误问题详解

解决Python requests中的ProxyError&#xff1a;SSL版本错误问题详解 在使用Python进行网络请求时&#xff0c;很多人都会用到requests库配合代理服务器进行调试或抓包。但有时会遇到令人困惑的ProxyError&#xff0c;尤其是伴随SSLError: [SSL: WRONG_VERSION_NUMBER]这样的错…

基于deepseek的Spring boot入门

一次跟着deepseek记笔记的尝试&#xff0c;由于CSDN没有思维导图&#xff0c;只能按层级记录提问 如果我想知道一个springboot项目的基本结构&#xff0c;比如用到了哪些组件&#xff0c;入口在哪&#xff0c;数据库配置是怎样的 应该从哪里开始 springboot有哪些常用注解 一个…

macOS 15.6 ARM golang debug 问题

前言 最近使用macmini m4在使用golang debug发现一些奇怪的问题&#xff0c;debug到c代码&#xff0c;莫名其妙&#xff0c;而且不知道什么原因&#xff0c;知道搜索查询&#xff0c;才发现是苹果的Command Line Tools 的锅&#xff0c;macOS 15果然是一堆bug&#xff0c;毕竟…

有个需求:切换车队身份实现Fragment的Tab隐藏显示(车队不显示奖赏)

核心实现&#xff1a; 1使用mmkv保存切换的身份 2借助eventbus实现通知Fragment的tab更新private void switchFleet(boolean isMore, EnterpriseInfo enterpriseInfo) {if (isMore) {tvSwitchFleetTitle.setText(getText(R.string.switch_to_other_accounts));} else {tvSwitch…

在 Android Studio 中修改 APK 启动图标(2025826)

在 Android Studio 中修改 Android 12 应用图标可以按照以下步骤进行&#xff1a;1、准备图标资源准备一个启动图标&#xff08;建议使用 SVG 格式或高分辨率 PNG&#xff0c;推荐尺寸为 512x512 像素&#xff09;图标应符合 Android 12 的设计规范&#xff08;自适应图标&…

Linux三剑客grep-sed-awk

linux三剑客-grep、sed、awk 文章目录linux三剑客-grep、sed、awk1.正则表达式1.1正则表达式&#xff1f;1.2应用场景&#xff1f;-谁可以用&#xff1f;1.3正则注意事项&#xff08;避免90%以上的坑&#xff09;1.4正则符号1.5正则VS通配符2.基础正则2.1 ^ 以...开头的行2.2 $…

给某个conda环境安装CUDA 12.4版本 全局CUDA不变

文章目录&#x1f3af; 正确的安装命令&#x1f4cb; 为什么这个命令安全&#xff1f;⚠️ 重要说明&#x1f527; 安装后环境配置方法一&#xff1a;在虚拟环境中设置方法二&#xff1a;使用conda环境变量&#x1f9ea; 验证安装&#x1f4ca; 版本共存确认&#x1f4a1; 额外…

【C++】日期类实现详解:代码解析与复用优化

代码总览与总结// 实现一个完善的日期类 class Date { public:int GetMonthDay(int year, int month){int monthDays[13] { 0,31,28,31,30,31,30,31,31,30,31,30,31 };// 闰年2月if (month 2 && ((year % 4 0 && year % 100 ! 0) || year % 400 0))return …