服务器怎么创建秘钥对?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 sshd 或 service 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://test.idctop.com/article/99541.html

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

相关推荐

  • 服务器工具包怎么用,服务器管理工具推荐

    高效、稳定、安全的服务器运维核心在于拥有一套经过严格筛选、功能完备的服务器工具包,这不仅是技术人员的工具集合,更是保障业务连续性与应对突发故障的关键资产,与其在系统崩溃时盲目寻找解决方案,不如在日常运维中构建标准化的工具体系,通过 proactive(主动)的管理策略,将潜在风险降至最低,一个专业的工具包能够涵……

    2026年4月5日
    8700
  • 服务器客服联系方式是多少?服务器客服电话微信邮箱怎么找

    服务器客服联系方式是保障业务连续性与系统稳定运行的关键触点,选择专业、响应及时、渠道多元的客服支持,可显著降低故障处理时长,提升运维效率,在云计算与数字化转型加速的今天,服务器作为企业IT基础设施的核心,其稳定性直接关乎业务命脉,一旦出现宕机、网络中断、安全攻击或配置错误,快速获取专业客服支持的能力,已成为企业……

    服务器运维 2026年4月17日
    4500
  • FunctionGraph函数模型是什么?,怎么用?

    FunctionGraph函数模型是华为云提供的无服务器计算服务,允许开发者以函数形式运行代码,平台自动管理资源分配与扩缩容,实现真正的按需付费与零运维体验,FunctionGraph 的核心在于将计算抽象为函数,开发者只需上传代码并定义触发条件,剩下的扩容、负载均衡、日志采集都由平台接管,这种模型特别适合处理……

    2026年8月4日
    300
  • 服务器帐号之间转移怎么操作?服务器账号数据迁移方法

    服务器帐号之间转移的核心在于数据的完整性与业务连续性,成功的关键在于转移前的周密备份、转移中的权限校验以及转移后的全面验证,这一过程并非简单的文件复制,而是涉及用户权限、配置文件、数据库关联以及应用依赖关系的系统性迁移,只有确保每一个环节都精准执行,才能实现零故障、零数据丢失的迁移目标,从而保障企业资产的安全与……

    2026年4月3日
    6600
  • 服务器异常的可能原因是哪些?服务器异常怎么解决?

    服务器异常的本质通常源于硬件资源瓶颈、软件配置缺陷、网络连接故障或安全攻击四个核心维度,快速定位并解决这些问题是保障业务连续性的关键,服务器作为网络服务的核心载体,其稳定性直接决定了用户体验与业务数据的安全,当服务器出现响应延迟、服务不可用或数据丢失等异常情况时,往往不是单一因素作用的结果,而是多重隐患积累后的……

    2026年3月24日
    11200
  • python成员是什么?python成员变量与方法的详细解析

    Python成员主要指Python社区中的活跃贡献者、维护者及核心开发者群体,他们通过开源协作共同推动Python语言生态的演进与标准化,Python核心成员的角色构成与职责边界在Python的开源宇宙中,”成员”并非一个行政化的职称,而是一种基于贡献度和信任度的社区身份,这个群体主要由三类人构成:核心指导委员……

    2026年7月7日
    3600
  • 高维度智能金融是什么?智能金融平台有哪些

    高维度智能金融是通过量子计算、多模态大模型与链上可信数据深度融合,实现资产跨期配置全局最优与风险毫秒级动态对冲的下一代金融范式,高维度智能金融的底层逻辑重构跨越维度的认知升维传统金融模型受限于线性回归与低维切片数据,难以捕捉非线性黑天鹅事件,高维度智能金融则打破了这一桎梏,将宏观经济周期、微观企业行为、另类数据……

    2026年4月26日
    5800
  • 服务器怎么关闭ip访问?禁止IP直接访问网站的方法

    要彻底禁止服务器通过IP地址直接访问,核心策略在于修改Web服务器的配置文件,将默认虚拟主机设置为拒绝连接或返回403/444状态码,并强制将所有HTTP请求重定向至HTTPS协议,这一操作不仅能有效防止恶意解析和域名劫持,还能显著提升服务器的安全等级,避免因IP直接暴露而遭受扫描攻击,对于运维人员而言,掌握服……

    2026年3月21日
    12400
  • 服务器带宽跑满怎么办?如何快速排查并解决带宽拥堵问题

    服务器带宽跑满会导致网站访问卡顿、服务不可用甚至业务中断,核心解决思路是“先应急恢复,后排查根治”,通过技术手段限制非必要流量、优化传输效率、升级带宽配置,能够快速解决问题并防止复发,面对{服务器带宽跑满怎么办}这一棘手问题,必须从流量分析、系统优化、架构升级三个维度建立长效机制, 应急处理:快速恢复业务可用性……

    2026年4月11日
    6700
  • 服务器杀毒效果如何?企业安全防护必备方案

    服务器杀毒是保障企业核心数据资产和业务连续性的关键防线,其重要性远非个人电脑杀毒可比,服务器杀毒是专门为服务器环境设计的安全解决方案,它通过实时监控、深度扫描、行为分析、漏洞防护和集中管理等多重手段,抵御恶意软件(病毒、木马、勒索软件、挖矿程序等)、漏洞利用和高级持续性威胁(APT),确保服务器系统的稳定、安全……

    2026年2月14日
    10500

发表回复

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