当前位置: 首页 > article >正文

告别密码:用SSH密钥对给你的openEuler服务器加把“安全锁”

告别密码用SSH密钥对给你的openEuler服务器加把“安全锁”想象一下这样的场景凌晨三点你的手机突然收到服务器被暴力破解的告警。攻击者通过穷举密码的方式已经尝试了上万次登录。虽然暂时没有成功但这种如芒在背的感觉让人无法安睡。其实有一种更安全、更优雅的解决方案——彻底禁用密码登录改用SSH密钥认证。对于使用openEuler系统的运维人员来说SSH密钥对不仅是一把更安全的钥匙更是提升工作效率的利器。本文将带你从零开始构建一套基于4096位RSA密钥的认证体系让你的服务器告别密码时代的风险。1. 为什么SSH密钥比密码更安全每次输入密码登录服务器时你是否想过这个过程中隐藏的风险密码认证存在几个致命缺陷暴力破解风险简单的密码可能在几分钟内被破解即使复杂密码也难以抵挡持续攻击中间人攻击网络传输中的密码可能被截获尽管SSH本身加密但风险依然存在管理困难多台服务器使用相同密码不安全不同密码又难以记忆相比之下SSH密钥认证提供了军事级的安全保障# 典型SSH密钥对的文件结构 ~/.ssh/ ├── id_rsa # 私钥绝不可泄露 └── id_rsa.pub # 公钥可自由分发密钥认证的核心优势非对称加密公钥加密的数据只能由对应私钥解密挑战响应机制每次登录都会生成随机挑战码防止重放攻击密钥长度优势4096位RSA密钥相当于20位随机密码的强度安全提示即使获得公钥攻击者也无法逆向推导出私钥。这是数学上公认的难题。2. 生成高强度SSH密钥对工欲善其事必先利其器。我们先来打造一把安全的钥匙。2.1 密钥生成实战在客户端机器上执行以下命令以openEuler为例ssh-keygen -t rsa -b 4096 -C your_emailexample.com -f ~/.ssh/openeuler_rsa关键参数解析参数作用推荐值-t密钥类型rsa兼容性最好-b密钥长度4096最低建议-C注释信息用于标识密钥用途-f密钥文件路径建议区分不同服务器生成过程中会提示输入密钥密码passphrase这是保护私钥的第二道防线Enter passphrase (empty for no passphrase): [建议输入一个强密码] Enter same passphrase again:2.2 密钥文件权限管理生成后的密钥文件必须设置严格的权限chmod 600 ~/.ssh/openeuler_rsa # 私钥权限 chmod 644 ~/.ssh/openeuler_rsa.pub # 公钥权限错误的权限配置会导致SSH拒绝使用密钥这是常见的安全防护机制。3. 部署公钥到openEuler服务器有了密钥对后需要将公钥安装到目标服务器上。3.1 手动部署方法登录目标服务器编辑授权文件mkdir -p ~/.ssh echo 你的公钥内容 ~/.ssh/authorized_keys chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys3.2 使用ssh-copy-id工具更便捷的方式是使用专用工具ssh-copy-id -i ~/.ssh/openeuler_rsa.pub usernameserver_ip这个命令会自动完成创建.ssh目录如果不存在追加公钥到authorized_keys设置正确的文件权限常见问题如果ssh-copy-id不可用可以手动将公钥内容复制到服务器的~/.ssh/authorized_keys文件中。4. 禁用密码登录终极安全加固密钥配置完成后就该关闭危险的密码登录大门了。4.1 修改SSH服务配置编辑服务器上的/etc/ssh/sshd_config文件sudo vim /etc/ssh/sshd_config找到并修改以下参数PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no PermitRootLogin prohibit-password # 如果允许root登录4.2 配置生效与测试重启SSH服务前务必保持一个活跃的连接会话sudo systemctl restart sshd然后新开终端测试连接ssh -i ~/.ssh/openeuler_rsa usernameserver_ip关键检查点不使用-i参数指定密钥时应被拒绝使用正确密钥应该能直接登录尝试密码登录应该失败5. 高级密钥管理技巧真正的安全专家不仅会配置密钥更懂得如何管理它们。5.1 使用ssh-agent管理私钥避免频繁输入密钥密码eval $(ssh-agent -s) ssh-add ~/.ssh/openeuler_rsa查看已加载的密钥ssh-add -l5.2 多服务器密钥管理策略建议为不同安全级别的服务器使用不同密钥~/.ssh/ ├── prod_rsa # 生产环境密钥 ├── dev_rsa # 开发环境密钥 └── temp_rsa # 临时服务器密钥通过SSH配置简化连接# ~/.ssh/config 示例 Host prod-server HostName 192.168.1.100 User admin IdentityFile ~/.ssh/prod_rsa Port 22225.3 密钥备份与恢复安全的备份方案应该包括加密存储私钥使用GPG或密码管理器分散存储如离线USB云存储定期轮换密钥建议每6-12个月# 备份示例 tar czvf ssh_backup.tar.gz ~/.ssh gpg -c ssh_backup.tar.gz # 加密压缩包6. 故障排除与应急方案即使最完善的方案也需要应急预案。6.1 常见问题排查症状1密钥配置正确但无法登录检查服务器磁盘空间df -h查看/var/log/secure日志验证authorized_keys文件权限症状2连接超时确认网络连通性ping检查防火墙规则sudo iptables -L验证SSH服务状态sudo systemctl status sshd6.2 紧急恢复方案如果密钥丢失或配置错误导致无法登录通过云平台的控制台访问使用本地终端如果有物理访问权限联系托管服务商获取紧急访问权限恢复后应立即检查系统日志是否有入侵痕迹轮换所有受影响密钥审查所有用户账户7. 安全审计与持续改进安全配置不是一劳永逸的需要持续监控和优化。7.1 监控SSH登录尝试使用工具如fail2ban防御暴力破解sudo dnf install fail2ban sudo systemctl enable --now fail2ban配置示例/etc/fail2ban/jail.local[sshd] enabled true maxretry 3 bantime 1h7.2 定期安全审查清单建议每月检查当前活跃的SSH密钥cat ~/.ssh/authorized_keys最近登录记录last系统用户列表getent passwdSSH服务日志journalctl -u sshd7.3 密钥轮换策略建立密钥生命周期管理开发环境每6个月轮换生产环境每年轮换或人员变动时临时密钥单次使用后立即撤销轮换步骤# 生成新密钥 ssh-keygen -t ed25519 -f ~/.ssh/new_key # 部署新密钥 ssh-copy-id -i ~/.ssh/new_key userserver # 验证新密钥 ssh -i ~/.ssh/new_key userserver # 从服务器删除旧密钥 sed -i /旧密钥指纹/d ~/.ssh/authorized_keys在实际运维中我见过太多因为密码泄露导致的安全事件。切换到密钥认证后不仅安全性大幅提升日常登录也变得更加便捷。特别是配合SSH config文件管理多台服务器时再也不用记忆各种IP和密码了。

相关文章:

告别密码:用SSH密钥对给你的openEuler服务器加把“安全锁”

告别密码:用SSH密钥对给你的openEuler服务器加把“安全锁” 想象一下这样的场景:凌晨三点,你的手机突然收到服务器被暴力破解的告警。攻击者通过穷举密码的方式,已经尝试了上万次登录。虽然暂时没有成功,但这种如芒在背…...

AI智能体认知动力学:元认知架构如何让AI思考过程可观测与可预测

1. 项目概述:当AI智能体开始拥有“思考的轨迹” 如果你和我一样,长期关注AI智能体(AI Agent)领域,可能会有一个共同的感受:我们造出了很多能说会道的“演员”,但很难说它们真的在“思考”。大多…...

解锁团队协作新高度:搭建专属PlantUML Server实现高效图表设计

解锁团队协作新高度:搭建专属PlantUML Server实现高效图表设计 【免费下载链接】plantuml-server PlantUML Online Server 项目地址: https://gitcode.com/gh_mirrors/pl/plantuml-server 你是否经常在团队协作中遇到这样的困扰?团队成员各自使用…...

ClawCoder:为AI编码助手注入工程思维,实现项目理解与自动化重构

1. 项目概述:ClawCoder,为AI助手注入“工程思维” 如果你和我一样,长期在代码世界里摸爬滚打,肯定有过这样的体验:面对一个庞大的、陌生的项目仓库,AI助手虽然能帮你写几行代码,但它对项目的整体…...

Scroll Reverser终极指南:告别Mac多设备滚动方向混乱

Scroll Reverser终极指南:告别Mac多设备滚动方向混乱 【免费下载链接】Scroll-Reverser Per-device scrolling prefs on macOS. 项目地址: https://gitcode.com/gh_mirrors/sc/Scroll-Reverser 还在为Mac上触控板和鼠标滚动方向不一致而烦恼吗?Sc…...

百灵快传:三步搞定手机电脑大文件传输的终极解决方案 [特殊字符]

百灵快传:三步搞定手机电脑大文件传输的终极解决方案 🚀 【免费下载链接】b0pass 百灵快传(B0Pass):基于Go语言的高性能 "手机电脑超大文件传输神器"、"局域网共享文件服务器"。LAN large file transfer tool。 项目地…...

SMPL模型与深度相机动作捕捉技术实践

1. SMPL模型与深度图像动作捕捉技术解析 在计算机视觉和三维人体重建领域,SMPL(Skinned Multi-Person Linear)模型与深度相机的结合正在革新传统动作捕捉方式。这套方案用单目深度相机就能实现毫米级精度的实时运动重建,成本仅为光…...

GSE宏编译器完整指南:5分钟掌握魔兽世界技能自动化终极教程

GSE宏编译器完整指南:5分钟掌握魔兽世界技能自动化终极教程 【免费下载链接】GSE-Advanced-Macro-Compiler GSE is an alternative advanced macro editor and engine for World of Warcraft. 项目地址: https://gitcode.com/gh_mirrors/gs/GSE-Advanced-Macro-C…...

视觉语言模型对象幻觉问题与PGD对抗攻击解决方案

1. 视觉语言模型中的对象幻觉问题解析 视觉语言模型(Vision-Language Models, VLMs)在图像描述生成任务中表现出色,但普遍存在一个关键缺陷——对象幻觉(Object Hallucination)。这种现象表现为模型生成的描述中包含了…...

创维E900V22C电视盒子CoreELEC评测与实战指南:从闲置设备到4K媒体中心

创维E900V22C电视盒子CoreELEC评测与实战指南:从闲置设备到4K媒体中心 【免费下载链接】e900v22c-CoreELEC Build CoreELEC for Skyworth e900v22c 项目地址: https://gitcode.com/gh_mirrors/e9/e900v22c-CoreELEC 将闲置的创维E900V22C电视盒子改造为专业级…...

Go语言结构体Struct:内存布局、标签、接收者与内存对齐

引言结构体是Go语言中最核心的数据抽象机制之一。相比于面向对象语言中的类(Class),Go语言采用了更轻量、更直接的结构体组合方式来实现数据与行为的封装。本文将深入探讨Go结构体的各个方面,从底层内存布局到实际工程实践&#x…...

Moonlight-Switch游戏串流终极指南:如何让任天堂Switch畅玩PC大作

Moonlight-Switch游戏串流终极指南:如何让任天堂Switch畅玩PC大作 【免费下载链接】Moonlight-Switch Moonlight port for Nintendo Switch 项目地址: https://gitcode.com/gh_mirrors/mo/Moonlight-Switch 还在为Switch性能限制而无法体验顶级PC游戏而烦恼吗…...

PyPlexityAI:高性能Python客户端,无缝接入Perplexity AI搜索与推理

1. PyPlexityAI:一个为Python开发者打造的现代、高性能Perplexity AI客户端 如果你正在寻找一个能无缝接入Perplexity AI强大搜索与推理能力的Python工具,并且厌倦了那些臃肿、文档不全或者性能不佳的第三方库,那么 gweidart/pyplexityai 这…...

小米设备音频质量终极优化指南:告别音质损耗,打造专业级聆听体验

小米设备音频质量终极优化指南:告别音质损耗,打造专业级聆听体验 【免费下载链接】audio-misc-settings A Magisk module for setting miscellaneous audio configuration values (media audio volume steps (100 steps), raising the resampling qualit…...

对比使用Taotoken前后在AI调用成本管理上的效率提升

对比使用 Taotoken 前后在 AI 调用成本管理上的效率提升 1. 传统 AI 调用成本管理的痛点 在未使用 Taotoken 之前,小型开发团队通常面临几个成本管理难题。首先是模型供应商的套餐制计费方式,团队需要预估未来一段时间的调用量并预付费用。这种模式容易…...

MusicPlayer2终极指南:10个简单步骤打造你的专业Windows音乐播放器

MusicPlayer2终极指南:10个简单步骤打造你的专业Windows音乐播放器 【免费下载链接】MusicPlayer2 MusicPlayer2是一款功能强大的本地音乐播放软件,旨在为用户提供最佳的本地音乐播放体验。它支持歌词显示、歌词卡拉OK样式显示、歌词在线下载、歌词编辑、…...

如何在5分钟内搭建免费开源自托管翻译API:LibreTranslate终极指南

如何在5分钟内搭建免费开源自托管翻译API:LibreTranslate终极指南 【免费下载链接】LibreTranslate Free and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup. 项目地址: https://gitcode.com/GitHub_Trending/li/LibreTr…...

3个步骤让B站视频下载变得像点外卖一样简单

3个步骤让B站视频下载变得像点外卖一样简单 【免费下载链接】BBDown Bilibili Downloader. 一个命令行式哔哩哔哩下载器. 项目地址: https://gitcode.com/gh_mirrors/bb/BBDown 你是否曾经遇到过这样的烦恼:网络不稳定时想看的B站视频总是缓冲,或…...

2026年5月阿里云Hermes Agent/OpenClaw集成教程+百炼token Plan速览教程

2026年5月阿里云Hermes Agent/OpenClaw集成教程百炼token Plan速览教程。 OpenClaw和Hermes Agent是什么?OpenClaw和Hermes Agent怎么部署?如何部署OpenClaw/Hermes Agent?2026年还在为部署OpenClaw和Hermes Agent到处找教程踩坑吗&#xff1…...

Diablo Edit2:重新定义暗黑破坏神2的角色管理体验

Diablo Edit2:重新定义暗黑破坏神2的角色管理体验 【免费下载链接】diablo_edit Diablo II Character editor. 项目地址: https://gitcode.com/gh_mirrors/di/diablo_edit 你是否曾经在暗黑破坏神2中花费数百小时打造角色,却因为一次错误的技能点…...

【MCP 2026动态沙箱隔离权威白皮书】:首次公开3大隔离策略调整逻辑与企业级适配清单

更多请点击: https://intelliparadigm.com 第一章:MCP 2026动态沙箱隔离演进背景与核心定位 随着云原生应用规模持续扩张与零信任架构落地深化,传统静态沙箱机制在应对高级持续性威胁(APT)和跨租户侧信道攻击时暴露出…...

国产操作系统适配VSCode 2026,深度解析OpenHarmony 4.1+、UOS 23.1+与VSCode原生LSP协议兼容性断点及热补丁方案

更多请点击: https://kaifayun.com 第一章:VSCode 2026国产化适配的战略意义与技术演进全景 随着信创产业加速落地,VSCode 2026 版本已将原生国产化适配列为一级工程目标,覆盖统信UOS、麒麟V10、中科方德等主流操作系统&#xff…...

如何在Mac上快速搭建局域网通讯神器:Qt版飞秋全攻略

如何在Mac上快速搭建局域网通讯神器:Qt版飞秋全攻略 【免费下载链接】feiq 基于qt实现的mac版飞秋,遵循飞秋协议(飞鸽扩展协议),支持多项飞秋特有功能 项目地址: https://gitcode.com/gh_mirrors/fe/feiq 还在为Mac电脑找不到好用的局…...

鸣潮自动化终极指南:如何用ok-ww轻松解放双手,告别重复劳动

鸣潮自动化终极指南:如何用ok-ww轻松解放双手,告别重复劳动 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸 一键日常 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves …...

别再只测内阻了!用Python+电化学工作站,5分钟画出锂电池的交流阻抗谱(EIS)

用Python解锁锂电池EIS分析:从数据采集到等效电路建模实战 在电池研发实验室里,工程师们常常盯着屏幕上那些半圆和斜线组成的图谱出神——这就是揭示电池内部秘密的交流阻抗谱(EIS)。传统的内阻测试就像用体温计测量健康状况,而EIS则相当于给…...

Synology-BaiduNetdisk-Package:基于Docker的群晖百度网盘客户端容器化部署方案

Synology-BaiduNetdisk-Package:基于Docker的群晖百度网盘客户端容器化部署方案 【免费下载链接】synology-baiduNetdisk-package 项目地址: https://gitcode.com/gh_mirrors/sy/synology-baiduNetdisk-package 技术定位与问题场景 在NAS存储生态中&#x…...

保姆级教程:在Ubuntu 22.04上用QEMU仿真复现Netgear R9000路由器漏洞(CVE-2019-20760)

从零构建Netgear R9000漏洞复现环境:QEMU仿真与ARM架构实战指南 引言 在物联网安全研究领域,设备漏洞复现是理解漏洞本质的关键步骤。对于Netgear R9000这样的高端路由器设备,物理设备获取成本高昂,而基于QEMU的仿真技术为安全研究…...

GL.iNet Beryl AX便携式路由器评测:WiFi 6与OpenWrt的完美结合

1. GL.iNet Beryl AX 便携式路由器深度评测作为一名长期关注网络设备的科技博主,我有幸拿到了GL.iNet最新推出的Beryl AX(GL-MT3000)便携式路由器。这款支持WiFi 6的小巧设备给我留下了深刻印象,它不仅具备2.5GbE高速网口&#xf…...

5分钟实现XGP存档完整提取:游戏进度无损迁移终极方案

5分钟实现XGP存档完整提取:游戏进度无损迁移终极方案 【免费下载链接】XGP-save-extractor Python script to extract savefiles out of Xbox Game Pass for PC games 项目地址: https://gitcode.com/gh_mirrors/xg/XGP-save-extractor XGP存档提取器是一个专…...

别再只用${__counter}了!Jmeter计数器配置元件的5个实战场景与避坑指南

别再只用${__counter}了!Jmeter计数器配置元件的5个实战场景与避坑指南 如果你还在用${__counter}函数做简单的递增计数,那可能错过了Jmeter计数器90%的高级玩法。作为性能测试工程师,我曾在电商大促压测中因为计数器配置不当,导致…...