服务器怎么才能获得客户端的公钥,常见方法有哪些?

SSH与TLS双向认证对比

服务器获取客户端公钥主要通过三种路径:在SSH认证中由客户端将公钥文件主动上传至服务器,在TLS握手时通过客户端证书直接提取,或通过Diffie‑Hellman等密钥交换协议间接派生,下文逐一拆解每种场景的实现步骤与原理,并对比不同方案的安全性与适用场景。

SSH服务器如何添加客户端公钥:标准操作流程

SSH公钥认证是服务器获得客户端公钥最直观的场景,客户端生成密钥对后,将公钥内容追加到服务器端~/.ssh/authorized_keys文件中,服务器即可使用该公钥验证客户端的签名。

10分钟手把手教你通过SSH,使用密钥/账号远程登录Linux服务器(Windows/macOS)
加载中
10分钟手把手教你通过SSH,使用密钥/账号远程登录Linux服务器(Windows/macOS)

操作步骤

  • 客户端生成密钥对:ssh‑keygen -t rsa -b 4096 -C "your_email@example.com"
  • 将公钥传输到服务器:ssh‑copy-id user@server_ip,或手动执行cat ~/.ssh/id_rsa.pub | ssh user@server_ip "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"
  • 设置服务器端文件权限:chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys
  • 验证:ssh user@server_ip应无需密码直接登录

关键点

  • 服务器不会主动生成客户端的公钥,公钥必须由客户端产生并传递。
  • ssh‑copy-id工具会自动处理目录权限和追加操作,较手动方式更安全。
  • 一台服务器可以存储多个客户端的公钥,每个公钥占据一行。
  • 业内专家指出,公钥文件权限设置不正确是免密登录失效的常见原因,authorized_keys文件必须对除属主外的用户无写权限。

服务器获取客户端公钥原理:TLS双向认证中的证书提取

在HTTPS双向认证(mTLS)场景下,服务器通过客户端证书获得公钥,握手阶段服务器发送CertificateRequest请求,客户端将证书链发送给服务器,服务器从证书的

服务器怎么才能获得客户端的公钥,常见方法有哪些?

SubjectPublicKeyInfo字段中提取公钥,并利用证书签发机构的公钥验证证书合法性。

流程拆解

  • 服务器发送CertificateRequest,指定可接受的CA列表。
  • 客户端发送Certificate消息,包含符合要求的客户端证书。
  • 服务器验证证书签名、有效期、吊销状态后,提取公钥。
  • 若服务器使用该公钥加密随机数,则客户端必须拥有对应私钥才能解密,完成双向身份认证。

适用场景

  • 企业内部应用间的API通信,要求客户端持有合法证书。
  • 金融级接口调用,对客户端身份验证强度要求高。
  • 与SSH公钥上传相比,TLS证书方式不需要逐台服务器手动添加公钥,只需维护统一的CA即可管理大量客户端,规模化部署效率更高。

客户端公钥传输到服务器方式对比:SSH上传与TLS证书

对比维度 SSH公钥认证 TLS双向认证
公钥传输方式 客户端手动上传或ssh‑copy-id 握手阶段自动携带
公钥管理 分散在每台服务器的authorized_keys文件 集中由CA签发,服务器端配置信任链
安全性 依赖公钥文件完整性,私钥泄露风险 证书链验证,可集成OCSP/CRL吊销
配置复杂度 低,单台或少量服务器友好 较高,需要搭建或使用已有CA
适用规模 推荐20台以内 适合大规模集群或微服务架构

行业共识认为,双向认证在安全性上优于静态公钥文件,但SSH公钥方式凭借其简单直接,仍被相当一部分中小团队采用,选择哪种方式取决于你对运维成本和认证强度的权衡。

服务器怎么才能获得客户端的公钥,常见方法有哪些?

公钥认证服务器配置工具:OpenSSH与Nginx实际设置

OpenSSH公钥认证设置

编辑/etc/ssh/sshd_config,确保以下参数开启:

  • PubkeyAuthentication yes
  • AuthorizedKeysFile .ssh/authorized_keys
  • PasswordAuthentication no (关闭密码登录以增强安全性)

重启服务:systemctl restart sshd

Nginx 客户端证书验证配置

在server块中启用:

ssl_client_certificate /etc/nginx/ca.crt;
ssl_verify_client on;
ssl_verify_depth 1;

我们可以通过配置实现获取客户端公钥两种常用方式:对于SSH,将公钥写入authorized_keys;对于TLS,指定CA证书路径并开启验证,Nginx会自动提取客户端证书中的公钥供后续处理。

检查客户端公钥是否成功上传服务器的命令

  • 查看authorized_keyscat ~/.ssh/authorized_keys
  • 验证SSH公钥指纹:ssh‑keygen -lf ~/.ssh/id_rsa.pub
  • 查看TLS握手日志:openssl s_client -connect server:443 -cert client.pem -key client.key

实操中容易卡住的几个细节

权限问题

SSH公钥认证长期无法生效,多数是因为.ssh目录权限大于700,或authorized_keys权限大于600,服务器会严格检查文件属主和权限,任何偏离都会导致公钥被忽略。

公钥格式错误

复制公钥时误拷贝了换行或额外字符,建议使用ssh‑keygen -y -f private_key重新生成公钥字符串,确保格式正确。

CA证书链不完整

TLS双向认证中,服务器必须拥有完整的CA证书链才能验证客户端证书,如果只配置了根证书,而客户端证书由中间CA签发,验证会失败,需要将中间CA证书一并配置到

服务器怎么才能获得客户端的公钥,常见方法有哪些?

ssl_client_certificate指向的文件中。

关于服务器获取客户端公钥的常见问题

服务器怎么获得客户端的公钥生成?

服务器无法参与客户端公钥的生成,公钥必须由客户端在本地通过密钥生成工具(如ssh‑keygen、openssl genrsa)产生,然后通过安全通道(如SSH拷贝、HTTPS上传)交付给服务器,服务器仅负责存储或验证公钥,不会主动生成。

SSH服务器如何添加客户端公钥才能避免被覆盖?

使用追加模式而非覆盖模式。ssh‑copy-id工具会自动追加,手动操作时使用cat file >> authorized_keys(双大于号),切勿使用>单大于号,否则会清空已有公钥,若需批量添加,可编写脚本逐行追加,或使用配置管理工具如Ansible的authorized_key模块。

客户端公钥丢失后服务器端如何清理?

登录服务器,编辑对应客户端用户的authorized_keys文件,删除该公钥所在行,若无法确定是哪一行,可通过公钥指纹匹配:在服务器执行ssh‑keygen -lf .ssh/authorized_keys列出所有公钥指纹,再与客户端本地ssh‑keygen -lf id_rsa.pub的输出比对,确认后手动删除。

服务器通过客户端证书获取公钥时,如何验证证书的有效性?

服务器会检查证书的签名是否由受信任的CA签发、证书是否在有效期内、是否已被吊销(通过OCSP或CRL)。ssl_verify_client on开启后,Apache/Nginx等服务器会自动完成这些校验,拒绝无效证书的握手请求,整个验证过程在握手阶段完成,无需额外手工操作。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/article/554413.html

赞 (0)
服务器开发与运维哪个更有发展前景,如何选择?
上一篇 2026年8月7日 13:51
s7.5在哪些服务器能玩,国服怎么进呢?
下一篇 2026年8月7日 14:02

相关推荐

  • 高防服务器ip怎么查?高防服务器ip被屏蔽了怎么办

    高防服务器IP的核心价值在于通过底层流量清洗技术抵御大规模DDoS攻击,保障业务连续性,其选择需综合考量清洗阈值、响应速度及性价比,而非单纯追求低价或单一参数,在数字化浪潮席卷全球的今天,网络攻击已成为企业面临的常态风险,无论是电商平台、游戏公司还是金融支付系统,一旦遭遇恶意流量冲击,造成的直接经济损失和品牌信……

    2026年5月29日
    4300
  • HDFS分层存储原理是什么?HDFS数据块副本机制详解

    HDFS分层存储通过结合不同介质特性与数据生命周期,在保障数据高可用性的同时,显著降低了企业的大规模数据存储成本,随着数字化转型的深入,企业产生的数据量呈指数级增长,传统的单一存储架构已难以应对海量非结构化数据的挑战,HDFS(Hadoop Distributed File System)作为大数据生态的基石……

    2026年7月6日
    15000
  • 新用户注册抽1核2G云服务器,真能免费使用12个月?,VPS免费领取永久?新用户专享福利

    位于数据中心Tier-III设施的1核2G VPS在72小时压力测试中表现出稳定基准性能,搭载Intel Xeon E5-2680 v4处理器,单核主频稳定在2.8GHz,配合DDR4 ECC内存,在UnixBench测试中取得1520分的成绩,满足基础建站及轻量级应用需求,关键性能指标实测数据| 测试项目……

    2026年2月16日
    24800
  • 国外网站怎么注册?国外网站注册详细步骤教程

    在当前的互联网环境下,许多优质的服务器资源位于海外数据中心,对于开发者而言,掌握国外网站怎么注册不仅是拓展业务边界的关键,更是构建高可用架构的基础技能,本文将以近期备受关注的CloudSilk云服务商为例,通过实机测评与注册实操,深度解析其性能表现及2026年最新优惠活动,为用户提供具备参考价值的选购指南,服务……

    2026年3月15日
    14700
  • 方法环境配置软件link是什么,怎么设置

    环境配置软件的方法与链接管理直接决定开发效率,选择适合的工具并掌握配置技巧可以避免多数环境冲突问题,环境配置软件哪个好?五大工具核心差异选择环境配置软件时,首要考虑项目语言、团队规模和部署场景,不同工具在灵活性、学习成本和生态支持上差异明显,下面从实际使用角度拆解各自特点,帮你快速锁定适合自己的方案,常见环境配……

    2026年7月20日
    1500
  • 海外BGP混合线路vps优惠码怎么用?新春特惠Intel Xeon流量无封顶

    随着2026年新春佳节的临近,全球数据中心网络基础设施迎来了一年一度的升级与让利高峰,本次测评将深度解析一款针对跨境业务与海外建站用户设计的新春特惠 VPS 方案,该方案主打 Intel Xeon 处理器架构与海外 BGP 混合线路,并在流量策略上实现了流量无封顶,以下为基于实际测试数据与网络架构分析的详细测评……

    2026年3月1日
    15200
  • Alexhost海外服务器三网优化怎么样,无限流量值得购买吗

    在海外服务器市场中,针对国内用户的网络线路优化一直是选择核心,本次测评对象为 Alexhost,该商家主打Intel Xeon 高性能硬件配置,并特别推出了三网优化线路方案,对于需要稳定连接国内、追求低延迟以及大带宽需求的用户而言,这款配备无限流量特性的服务器方案值得关注,以下将从硬件性能、网络质量、实际测试数……

    2026年3月1日
    16000
  • 云服务器带宽按流量计费划算吗?按流量计费和按固定带宽怎么选

    对于流量波动大、突发峰值明显的业务,云服务器按流量计费通常更划算;而对于流量平稳、24小时持续高并发的业务,固定带宽包年包月更具性价比,选择计费模式并非简单的算术题,而是对业务形态的深度匹配,很多站长在初期为了节省成本,盲目选择低价的按量付费,结果在流量激增时遭遇巨额账单;也有企业为了求稳,长期租用高带宽包月资……

    2026年6月17日
    4710
  • 高铁负载均衡是什么意思?高铁负载均衡器怎么用

    高铁负载均衡并非简单的“分流”,而是通过动态调度运力与智能调控客流,在高峰期保障出行效率,在平峰期实现资源最优配置的系统性工程,想象一下,春运期间千万人同时购票,如果所有列车都按照固定时刻表机械运行,车厢会瞬间爆满,而邻座列车却空空荡荡,这就是传统调度模式的痛点,现代高铁系统引入了复杂的负载均衡机制,就像一位经……

    2026年5月30日
    4400
  • 给公司做个网站需要多少费用,企业建网站一般多少钱

    在评估企业建站的整体成本时,服务器租用与维护费用往往占据核心地位,其性能直接决定了网站的访问速度、安全性及用户体验,对于企业而言,选择合适的服务器并非单纯追求低价,而是在性能稳定性与投入产出比之间寻找最佳平衡点,以下针对企业建站常见的服务器类型进行深度测评,并结合2026年最新的市场活动优惠,详细解析费用构成……

    2026年2月23日
    17100

发表回复

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