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

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‑keygenopenssl 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://test.idctop.com/article/554413.html

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

相关推荐

  • 负载均衡器新年特惠活动有哪些?负载均衡器新年优惠价格多少

    在服务器架构优化的关键路径中,负载均衡器扮演着流量“交通指挥官”的核心角色,随着2026年新春的临近,各大云服务商纷纷推出负载均衡器新年特惠活动,这对于计划进行架构升级或扩容的技术团队而言,是降低基础设施成本的黄金窗口期,本次测评将基于真实的生产环境压力测试数据,深度解析当前主流负载均衡器的性能表现,并详细拆解……

    2026年4月11日
    7900
  • 荫云Yin-Net美国双ISP住宅IP VPS怎么样,美国住宅IP VPS推荐

    荫云作为新兴的云服务提供商,近期针对海外建站及流媒体解锁需求推出了基于美国双ISP住宅IP的VPS促销活动,本次活动时间持续至2026年,全场VPS产品享受八折优惠,折后月付价格低至4.2美元起,并支持支付宝付款,极大地降低了国内用户的购买门槛,本文将从技术参数、路由质量、流媒体解锁能力及硬件性能四个维度进行深……

    2026年3月2日
    27600
  • 2026春季法兰克福ISP认证怎么样,德国原生ip服务器推荐

    本次测评针对法兰克福数据中心ISP认证服务器进行深度剖析,测试环境基于2026年春季最新部署的硬件节点,该服务方案核心卖点在于德国原生IP与NVMe SSD存储组合,旨在为用户提供低延迟、高带宽的欧洲业务接入体验, 硬件配置与计算性能测试服务器采用新一代Intel Xeon处理器,配合高性能NVMe SSD固态……

    2026年3月6日
    15600
  • 云服务器和VPS到底有什么区别,云服务器和VPS的区别

    云服务器与VPS的本质区别在于底层架构:VPS是物理机的“逻辑切片”,资源独占但受宿主机限制;云服务器是分布式集群的“弹性资源池”,通过软件定义网络实现计算、存储、网络资源的解耦与动态调度,架构底层逻辑:从“合租公寓”到“云端工厂”理解两者差异,首先要看它们是如何“出生”的,这不仅仅是技术名词的更替,而是基础设……

    2026年6月19日
    2800
  • 徐州高防服务器年付7折吗,云彩网络哪家好?

    在当前复杂的网络环境中,企业业务面临的DDoS攻击和CC攻击日益频繁且多样化,选择一款具备强大防御能力且网络稳定性优异的服务器成为保障业务连续性的关键,云彩网络作为国内知名的互联网基础设施服务商,其徐州高防服务器节点凭借骨干网优势和硬防能力,成为众多游戏、金融及电商企业的首选,本次测评将深入剖析云彩网络徐州高防……

    2026年2月19日
    25600
  • 服务器配置怎么查看一条命令,具体操作步骤有哪些?

    查看服务器配置一条一条信息,最直接可靠的方法是使用操作系统自带的命令行工具,例如Windows的systeminfo和Linux的lscpu、free、df等,可以逐项获取CPU、内存、硬盘、网络等详细参数, 无论你是刚接触服务器的新手,还是需要快速排查配置的运维,掌握这些命令都能让你在几分钟内摸清服务器底细……

    2026年7月28日
    2300
  • H3C防火墙怎么看NAT转换?如何查看NAT会话表

    在H3C防火墙中查看NAT转换记录,核心命令是 display nat session,配合 display nat statistics 可全面掌握转换状态,网络管理员在日常运维中,最常遇到的痛点就是业务连通性排查,当内网用户无法访问外网,或者外部用户无法访问内网服务器时,NAT(网络地址转换)往往是“幕后黑……

    2026年7月7日
    15500
  • 服务器如何推送消息到手机客户端,安卓推送方案有哪些

    服务器推送手机客户端,是解决实时通知和数据同步问题的最佳选择,能显著降低延迟并减少带宽消耗,比传统轮询方式更高效,在实际应用中,推送技术的选择直接关系到用户体验和服务器成本,无论你是独立开发者还是企业技术负责人,理解服务器推送手机客户端的核心原理和选型要点,都是做出正确决策的前提,服务器推送和轮询,手机客户端该……

    2026年8月7日
    400
  • 什么是分布式缓存redis,有哪些应用场景?

    Redis是目前应用最广泛的分布式缓存系统,它通过内存存储和丰富的数据结构,为高并发应用提供了毫秒级的响应能力,是解决数据库性能瓶颈的关键组件,Redis分布式缓存和本地缓存,到底有什么区别?很多团队在选型时都会纠结到底用本地缓存还是Redis,本地缓存常见的有Ehcache、Caffeine、Guava Ca……

    服务器测评 2026年8月9日
    1200
  • 国外特殊符号域名注册怎么操作?特殊符号域名注册流程详解

    在当前的互联网基础设施架构中,域名系统的选择对于业务的稳定性、抗攻击能力以及SEO表现具有决定性影响,本次测评将深入剖析国外特殊符号域名注册的核心价值,结合实际服务器性能测试数据与2026年最新优惠活动,为技术人员及站长提供具备实操价值的参考方案, 特殊符号域名的技术价值与市场现状传统域名市场资源日益枯竭,短字……

    2026年3月20日
    11000

发表回复

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