服务器怎么创建秘钥对?Linux生成SSH密钥详细步骤

服务器创建密钥对是保障远程登录安全的核心手段,其本质是利用非对称加密算法生成一对相互关联的密钥,其中公钥存放在服务器端,私钥由用户本地保管,以此实现“无密码登录”且极大提升防暴力破解能力。相比传统的密码认证,密钥对认证不仅更安全,还能有效规避弱口令风险,是服务器运维管理的标准操作规范。

服务器怎么创建秘钥对

核心原理与安全优势

在深入操作步骤之前,理解密钥对的运作机制至关重要,密钥对由公钥和私钥组成,二者一一对应。

  1. 私钥:相当于家门钥匙,必须严格保密,绝不在网络中传输。
  2. 公钥:相当于家门锁芯,放置在服务器指定位置,可以公开。

当客户端发起连接请求时,服务器会利用公钥加密一段随机字符串发送给客户端,客户端使用私钥解密后发回服务器,服务器验证解密正确性即可确认身份。 这一过程无需传输密码,即使网络被监听,私钥也不会泄露。

创建前的环境准备

在执行服务器怎么创建秘钥对的具体操作前,需确保环境配置正确,这是保障后续流程顺畅的基础。

  1. 客户端工具:Linux或MacOS系统可直接使用终端;Windows系统建议使用PowerShell或安装Git Bash,也可以使用PuTTY、Xshell等SSH客户端工具。
  2. 服务端权限:必须拥有服务器的root权限或具备sudo权限的普通用户账号。
  3. 网络连通性:确保客户端与服务器之间的22端口(SSH默认端口)网络通畅。

服务器端创建密钥对详细步骤

这是最常用且最推荐的方法,直接在服务器端生成私钥与公钥,然后将私钥下载至本地。这种方式确保了私钥在生成初期未经过不安全的网络传输。

登录服务器终端
使用SSH工具登录到目标服务器,输入密码完成登录。

执行生成命令
输入以下命令启动密钥生成程序:
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

  • -t rsa:指定使用RSA算法,兼容性最好。
  • -b 4096:指定密钥长度为4096位,安全性更高。
  • -C:添加注释,通常用于标识密钥用途或所有者。

配置密钥存储路径
系统会提示输入保存路径,默认为~/.ssh/id_rsa

  • 建议操作:直接按回车键使用默认路径,避免后续配置出错。
  • 自定义路径:若需管理多组密钥,可输入自定义路径,如~/.ssh/my_server_key

设置密钥口令
系统会提示输入口令。

服务器怎么创建秘钥对

  • 高安全场景:输入复杂的口令,即使私钥被盗,攻击者仍需破解口令才能使用。
  • 自动化运维场景:若用于脚本自动化登录,可留空直接按两次回车,实现免交互登录,但需确保服务器硬盘安全。

查看生成结果
进入.ssh目录查看文件:
ls -l ~/.ssh/
你会看到两个文件:

  • id_rsa:私钥文件,权限应为600。
  • id_rsa.pub:公钥文件,权限应为644。

配置公钥与SSH服务

生成密钥对后,必须将公钥“安装”到授权列表中,并调整SSH配置以启用密钥认证。

部署公钥至授权文件
执行以下命令,将公钥内容追加到authorized_keys文件中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
这一步是核心环节,authorized_keys文件是SSH服务验证客户端身份的依据。

设置文件权限
权限设置错误是导致密钥登录失败的常见原因,必须严格执行以下命令:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
SSH服务对权限极其敏感,若权限过于开放(如777),服务会拒绝读取密钥文件。

修改SSH服务配置
编辑SSH配置文件/etc/ssh/sshd_config,确保以下参数设置正确:

  • PubkeyAuthentication yes:启用公钥认证。
  • PasswordAuthentication no:建议关闭密码认证,强制使用密钥登录(需确认密钥登录成功后再修改此项,防止被锁在外面)。
  • AuthorizedKeysFile .ssh/authorized_keys:指定授权文件路径。

修改完成后,重启SSH服务使配置生效:
systemctl restart sshdservice sshd restart

客户端私钥管理与登录验证

服务器端配置完成后,需将生成的私钥文件(id_rsa)安全地下载到本地客户端。

私钥的安全传输
使用SFTP工具(如FileZilla、WinSCP)将服务器上的id_rsa文件下载至本地。下载完成后,务必删除服务器端的私钥文件,仅保留公钥,遵循“私钥不出服务器”的二次防护原则,除非你需要在多客户端登录。

服务器怎么创建秘钥对

本地登录验证

  • Linux/Mac终端:执行 ssh -i /本地路径/id_rsa user@server_ip,若设置了口令,需输入口令。
  • Windows PuTTY:需使用PuTTYgen工具将下载的id_rsa转换为.ppk格式,再加载到PuTTY的Auth配置中进行连接。

验证成功标志
成功登录后,终端提示符会变更为服务器用户界面,若配置了禁用密码登录,尝试用密码登录应显示“Permission denied”。

独立见解与专业建议

在实际的运维工作中,关于服务器怎么创建秘钥对以及后续管理,存在许多容易被忽视的细节,以下是基于E-E-A-T原则的专业建议:

  1. 算法选择策略:虽然RSA-4096目前仍是主流,但在高性能或极高安全需求场景下,建议使用ED25519算法,它具有更短的密钥长度、更快的签名速度,且安全性不输给长位RSA,生成命令为:ssh-keygen -t ed25519
  2. 私钥生命周期管理:密钥对不应“一劳永逸”,建议每半年或一年轮换一次密钥对,对于离职员工的密钥,必须立即从authorized_keys中删除对应公钥。
  3. 避免使用空口令私钥:在CI/CD流水线中,为了方便常使用无口令私钥,这实际上是一个巨大的安全隐患,建议使用ssh-agent来管理有口令的私钥,既保证安全又实现自动化。

相关问答

创建密钥对后,SSH登录提示“Permission denied (publickey)”怎么办?
这是最常见的报错,通常由以下三个原因导致:

  1. 权限问题:检查服务器端.ssh目录是否为700,authorized_keys文件是否为600。
  2. SELinux拦截:在CentOS等系统中,恢复文件安全上下文可解决,执行命令restorecon -R -v ~/.ssh
  3. 错误:检查authorized_keys是否完整,确保没有多余的换行符或缺失字符。

是否可以在本地电脑生成密钥对,再上传公钥到服务器?
完全可以,且这也是一种常用方法。
操作流程为:在本地执行ssh-keygen生成密钥对,然后使用ssh-copy-id user@server_ip命令将本地公钥自动上传至服务器的authorized_keys文件中,这种方法省去了手动下载私钥的步骤,适合从单一控制机管理多台服务器的场景。

如果您在配置过程中遇到其他疑难杂症,欢迎在评论区留言交流。

首发原创文章,作者:世雄 - 原生数据库架构专家,如若转载,请注明出处:https://idctop.com/article/99541.html

(0)
服务器怎么存储数据库?数据库存储原理详解
上一篇 2026年3月17日 14:42
AIoT有哪些研究方向?AIoT研究方向前景如何
下一篇 2026年3月17日 14:43

相关推荐

  • 服务器开发用什么语言好?服务器开发语言选择指南

    服务器开发的核心在于构建高并发、高可用、高扩展性的系统架构,其本质是在有限的硬件资源下,通过软件工程手段最大化处理能力与稳定性,无论是构建企业级后台还是互联网应用,架构设计的合理性直接决定了系统的生命周期,成功的开发流程必须遵循“性能先行、稳定为基、安全兜底”的原则,将复杂的业务逻辑解耦,通过分布式协同工作,实……

    2026年3月28日
    9000
  • 服务器密码管理规定是什么?服务器密码管理规定最新版2026年

    服务器密码管理规定是保障企业IT基础设施安全的基石,必须建立标准化、可审计、可追溯的全生命周期管理体系,据2023年Verizon《数据泄露调查报告》显示,74%的安全事件涉及凭证滥用或弱密码泄露;而Gartner研究指出,规范的密码管理可降低85%以上的未授权访问风险,本文基于ISO/IEC 27001、NI……

    2026年4月14日
    6800
  • python pycountry怎么用?python国家代码查询库教程

    Python pycountry 是处理国家、地区及语言代码的标准库,它能将人类可读的国家名称精准转换为 ISO 3166-1 标准的 alpha-2 或 alpha-3 代码,是国际化开发中不可或缺的数据清洗工具,在涉及跨境电商、多语言应用或地理信息系统(GIS)的项目中,数据标准化是首要难题,不同来源的数据……

    2026年7月4日
    4500
  • 服务器有两个阵列卡怎么设置,双阵列卡如何配置使用?

    在企业级存储架构设计中,采用双阵列卡配置并非简单的硬件堆叠,而是一种经过深思熟虑的高可用性与高性能优化策略,这种架构设计能够从根本上解决单控制器在处理高并发I/O请求时的瓶颈问题,同时提供物理层面的存储资源隔离,当服务器有两个阵列卡时,系统管理员可以将不同的业务负载、操作系统盘与数据盘进行物理分离,从而最大化存……

    2026年2月18日
    17300
  • 服务器显示增强配置是什么,服务器显示增强配置怎么开启?

    服务器显示增强配置是提升远程管理效率、保障数据可视化精度以及优化用户体验的关键手段,其核心在于通过硬件加速、协议调优与系统级参数的深度整合,实现低延迟、高保真且资源占用可控的图形输出环境,在现代IT架构与数据中心运维中,服务器的图形处理能力往往被忽视,但随着大数据可视化、云桌面以及远程高清监控需求的激增,如何构……

    2026年2月22日
    14800
  • 高级域名与普通域名的区别吗?选哪种域名更有利于SEO优化

    高级域名与普通域名的核心区别在于后缀的商业信誉背书、注册审核门槛、品牌稀缺性及SEO信任度权重,高级域名(如.edu/.gov及溢价品牌短域名)代表极高权威与专属特权,普通域名(如.com/.net常规注册)则侧重大众普及与开放使用,本质解析:高级域名与普通域名的界限顶级域名的层级划分域名体系如同数字世界的门牌……

    2026年4月27日
    4700
  • 防火墙应用代理性能如何影响网络安全与效率?

    安全与效率的平衡艺术防火墙应用代理性能的核心在于其深度检测流量、执行精细安全策略的速度与效率,它是保障安全防护有效性与业务流畅性的关键,直接决定了用户访问体验和网络安全防御的实时性,在现代网络威胁日益复杂的环境下,应用层代理防火墙已从单纯的访问控制点,演变为集深度流量分析、入侵防御、恶意软件拦截、内容过滤于一体……

    2026年2月5日
    13200
  • 服务器属性怎么打开?Win服务器属性设置方法

    打开服务器属性是Windows服务器运维管理中最基础且关键的操作,其核心结论在于:根据不同的系统版本及管理需求,打开服务器属性主要有三种最有效的路径,分别是通过“此电脑”图标右键菜单、使用“系统信息”工具以及通过PowerShell命令行查询, 掌握这三种方法,能够覆盖绝大多数服务器运维场景,确保管理员能够快速……

    2026年4月8日
    8000
  • 个人持有域名和企业持有区别在哪?个人域名和企业域名有什么区别

    个人持有域名成本低、注册快,适合博客或测试项目;企业持有域名则具备品牌资产属性、法律保护力强且利于SEO权重积累,是商业运营的必选项,域名不仅是网站的地址,更是数字世界的门牌号,很多人容易混淆个人与企业持有域名的本质区别,往往在注册时随手一填,直到需要备案、融资或面临商标纠纷时才追悔莫及,这不仅仅是名字不同,背……

    2026年6月1日
    4000
  • 防火墙Web如何有效防御各类网络攻击与数据泄露?

    防火墙作为网络安全的第一道防线,其Web防御能力直接关系到网站和业务系统的安全,要有效防御Web攻击,防火墙需通过多层次、动态化的技术手段,结合策略配置与持续监控,构建主动、智能的防护体系,以下是防火墙进行Web防御的核心方法与实施要点,Web应用防火墙的核心防御机制Web应用防火墙通过深度检测和过滤HTTP……

    2026年2月4日
    11500

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注