虚拟机公共密钥是什么?如何配置与使用?

虚拟机公共密钥(Public Key)本质上是一串加密字符,用于替代密码验证登录虚拟机,配置后无需输入密码即可完成SSH连接,同时显著提升安全性,它的核心机制是“公钥加密、私钥解密”的非对称加密配对,公钥放在虚拟机里,私钥保存在本地,两者配对成功才能放行。

公共密钥的工作原理是什么?

非对称加密的核心逻辑

公共密钥登录依赖一对密钥:公钥和私钥,公钥相当于一把锁,安装在虚拟机的~/.ssh/authorized_keys文件中;私钥相当于钥匙,保存在你的本地电脑上,当你发起SSH连接时,虚拟机会用公钥生成一道随机密码题,只有持有对应私钥的客户端才能解出正确答案。

核电站AZ3密钥保姆级别使用教学
加载中
核电站AZ3密钥保姆级别使用教学

为什么比密码登录更安全

密码登录存在两大隐患:暴力破解和密码泄露,公钥认证则完全不同,私钥文件长度通常为2048位或4096位,暴力穷举在数学上不可行,据行业安全报告,启用密钥登录后,服务器被暴力破解的概率大幅下降,即使虚拟机被入侵,攻击者拿到的也仅仅是公钥,无法反推出私钥。

公钥与私钥的对比

项目 公钥 私钥
存放位置 虚拟机(服务器端) 本地电脑(客户端)
权限要求 必须为600或更严格 必须为600
泄露风险 泄露不影响安全 泄露需立即吊销
用途 加密验证请求 解密完成认证

虚拟机密钥怎么配置?分步骤操作

第一步:在本地生成密钥对

打开终端(Windows使用PowerShell,macOS/Linux使用自带终端),输入:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

系统会询问保存路径,默认在~/.ssh/id_rsa,建议直接回车使用默认路径,随后提示设置私钥口令(passphrase),这是额外一层保护,即使私钥文件被盗也无法直接使用,但每次连接需要输入一次口令。

第二步:将公钥上传到虚拟机

执行以下命令将公钥内容追加到虚拟机的授权列表:

ssh-copy-id user@your_vm_ip

输入一次虚拟机密码后,公钥自动写入,如果你的系统没有

虚拟机公共密钥是什么?如何配置与使用?

ssh-copy-id命令,手动执行:

cat ~/.ssh/id_rsa.pub | ssh user@your_vm_ip "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

第三步:测试免密登录

ssh user@your_vm_ip

如果一切正常,无需输入密码直接进入系统,Windows用户在PowerShell中操作时,如果使用非OpenSSH客户端(如PuTTY),需要在PuTTYgen中导入私钥并转换格式。

虚拟机公钥和私钥的区别,如何理解?

文件格式差异

公钥文件通常以.pub内容是一行以ssh-rsa开头的长字符串,末尾带注释,私钥文件没有扩展名,内容以-----BEGIN RSA PRIVATE KEY-----开头,两者格式完全不同,互不可推断。

在连接过程中扮演的角色

当你执行SSH连接时,虚拟机会从authorized_keys文件中读取公钥,生成一个随机挑战发送给客户端,客户端用私钥对该挑战进行签名,虚拟机验证签名合法后,才允许建立会话,整个过程,私钥始终不离开你的电脑。

日常使用中的误区

多数人混淆两者的用途,公钥可以公开给任何人,甚至放在GitHub仓库都没问题,私钥必须密不示人,任何索要私钥的行为都是钓鱼,行业共识认为:公钥是身份标识,私钥是身份凭证,凭证绝不能交给第三方。

常见应用场景与操作技巧

多台虚拟机共用一套密钥

如果你有开发、测试、生产三套环境,无需每台生成不同密钥,只需将同一个公钥分别追加到各台的authorized_keys,就能实现一套私钥登录所有机器,具体操作:重复执行ssh-copy-id,或者在每台机器上手动追加公钥内容。

为不同用户配置不同公钥

每台虚拟机可以存在多个用户,每个用户有自己的~/.ssh/authorized_keys,例如root用户和deploy用户各存一份公钥,管理上互不干扰,配置时注意文件所有者必须是对应用户,否则SSH服务会拒绝读取。

彻底关闭密码登录

公钥验证成功后,可以修改虚拟机SSH配置强化安全,编辑/etc/ssh/sshd_config,找到以下行:

PasswordAuthentication no
PubkeyAuthentication yes

虚拟机公共密钥是什么?如何配置与使用?

修改后重启服务:

sudo systemctl restart sshd

重启前务必在当前会话中测试密钥登录是否正常,防止把自己锁在外面,多数云服务商(如简米云、酷番云)的安全组规则还允许额外限制SSH端口来源IP,搭配密钥登录构成双重防护。

排查连接失败的命令

  • ssh -v user@your_vm_ip:输出详细连接日志,查看认证过程卡在哪一步。
  • ls -l ~/.ssh/authorized_keys:检查文件权限是否为600。
  • journalctl -u sshd:查看系统日志中的认证错误记录。
  • restorecon -R ~/.ssh:SELinux开启时恢复上下文。

Windows虚拟机如何配置密钥登录?

Windows Server 2019及以上版本自带OpenSSH Server,但配置路径与Linux不同,管理员权限打开PowerShell:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd

公钥文件需要放在C:Users你的用户名.sshauthorized_keys,且administrators组以外的用户需要对authorized_keys文件设置只读权限,设置方法用icacls命令:

icacls C:Users用户名.sshauthorized_keys /inheritance:r /grant "用户名:F" /grant "SYSTEM:F"

Windows的administrators用户组权限较高,SSH服务默认允许管理员使用密钥登录,但普通用户需要额外配置sshd_config中的Match Group administrators规则。

密钥管理的最佳实践

定期轮换密钥

密钥使用时间越长,泄露风险越高,建议每半年生成一次新密钥对,替换虚拟机上的公钥,并注销旧公钥,操作时先添加新公钥,验证新私钥可登录后再删除旧公钥,避免中断业务。

私钥加密保护

生成密钥时设置passphrase,配合ssh-agent工具使用,在本地启动ssh-agent后,输入一次passphrase,后续连接无需重复输入:

eval $(ssh-agent)
ssh-add ~/.ssh/id_rsa

macOS用户可以用ssh-add --apple-use-keychain将passphrase存入钥匙串,实现免输入体验。

备份与撤销机制

私钥备份应存储在加密U盘或密码管理器中,不建议存放在网盘,一旦发现私钥泄露,立即从所有虚拟机的authorized_keys

虚拟机公共密钥是什么?如何配置与使用?

中删除对应公钥,同时检查服务器登录日志,确认是否存在可疑操作。

公共密钥配置中常见的坑

  • 权限过于宽松:authorized_keys如果权限不是600,SSH服务会拒绝使用它,设置chmod 600 ~/.ssh/authorized_keys。
  • 文件所有者错误:~/.ssh目录必须属于当前登录用户,不能是root或其他人,用chown -R 用户名:用户名 ~/.ssh修正。
  • Cloud-init覆盖:部分云服务器重启后,Cloud-init会重新初始化authorized_keys,导致手动添加的公钥消失,需修改/etc/cloud/cloud.cfg中的ssh_authorized_keys配置。
  • SELinux阻断:CentOS/RHEL系统默认SELinux状态可能拒绝SSH读取新文件,使用restorecon -R -v ~/.ssh恢复正确上下文。

Q&A:虚拟机公共密钥常见问题

公钥登录和密码登录可以同时开启吗?

可以。sshd_config中PasswordAuthentication yes表示同时允许两种方式,多数场景下建议先保留密码登录,待密钥验证无误后再关闭,开启两者时,SSH会优先尝试密钥认证,失败后回退到密码,这样既不安全也容易困惑,运维人员通常的做法是:测试阶段双开,正式环境关闭密码。

公钥泄露了会有什么后果?

公钥本身是公开信息,泄露后攻击者无法直接利用,但会带来枚举风险,攻击者可以尝试将泄露的公钥与暴力破解获取的私钥配对,或者利用公钥探测目标虚拟机是否使用相同的密钥对,因此公钥泄露后需要评估:该公钥是否在多台机器重复使用,如果重复使用,建议轮换所有涉及机器的密钥对。

虚拟机密钥登录和云厂商VNC登录有什么关系?

VNC登录是云控制台提供的带外管理通道,不依赖SSH服务,即使系统网络异常或SSH配置错误也能通过VNC进入系统,密钥登录属于系统内部的SSH认证机制,两者互为补充,当SSH配置错误导致无法连接时,可以通过VNC登录修复配置,这比物理接触服务器更高效,据云计算行业统计,大部分SSH连接故障都是可以通过VNC恢复的。

公共密钥配置一次,长期受益,它既解决了密码暴力破解的风险,也简化了日常登录操作,无论你管理一台还是上百台虚拟机,公钥认证都是基础设施安全的必要环节。

首发原创文章,作者:王坚‌,如若转载,请注明出处:https://idctop.com/%e8%99%9a%e6%8b%9f%e6%9c%ba%e5%85%ac%e5%85%b1%e5%af%86%e9%92%a5%e6%98%af%e4%bb%80%e4%b9%88%ef%bc%9f%e5%a6%82%e4%bd%95%e9%85%8d%e7%bd%ae%e4%b8%8e%e4%bd%bf%e7%94%a8%ef%bc%9f/

赞 (0)
独立域名和批量域名区别是什么?如何选择?
上一篇 2026年9月2日 15:07
XAMPP如何绑定本地域名到项目目录,xampp域名配置方法?
下一篇 2026年9月2日 15:11

相关推荐

  • 广告网站系统架构怎么设计?广告系统架构设计要点解析

    构建一个高并发、高可用且数据精准的广告网站,核心在于采用分布式微服务架构配合实时计算引擎,以解决海量请求下的响应延迟与数据一致性问题,这一架构设计直接决定了广告投放的转化率与平台的盈利能力,是广告技术平台成功的基石,一个优秀的架构不仅要能“扛得住”流量洪峰,更要能“算得准”每一次点击与曝光, 总体架构设计逻辑……

    2026年4月3日
    8200
  • 申请SSL证书一定要域名解析吗?SSL证书申请流程详解

    申请SSL证书并不强制要求域名解析,但为了让证书生效并实现网站HTTPS访问,必须完成域名解析并将服务器IP指向正确位置,很多站长在刚接触网络安全时,都会陷入一个误区,认为只要买了证书就能立刻让网站变绿,事实并非如此,SSL证书本质上是一个数字文件,它需要依附于你的服务器才能发挥作用,而域名解析,则是连接用户浏……

    2026年6月21日
    2300
  • http是什么域名?http和https的区别

    HTTP并不是域名,而是一种用于在网络上传输数据的通信协议,域名则是人们用来记忆IP地址的文字标识,两者配合工作才能让你看到网页,很多人把网址里的”http”和域名混为一谈,这就像把“快递单号”当成了“收件地址”,要彻底搞清楚这个问题,我们需要从互联网的基础架构聊起,看看这两者是如何分工合作的,HTTP与域名的……

    2026年6月2日
    4100
  • html图片添加说明怎么做?html图片添加说明文字教程

    在HTML中为图片添加说明,最规范且利于SEO的做法是使用标签包裹标签,这不仅能提供语义化的描述,还能显著提升搜索引擎对图片内容的理解能力,很多站长在搭建网站时,往往只关注文字内容的优化,却忽略了图片这一重要的流量入口,图片加载速度快、视觉冲击力强,但如果缺乏准确的文字说明,搜索引擎就无法“读懂”图片里的内容……

    服务器宽带 2026年6月7日
    4800
  • 西安整机租用前如何准备硬件验收,电脑租赁注意事项有哪些?

    西安整机租用前的硬件验收清单准备方法,核心在于核对配置单、实测硬件真实性能、检查外观与接口连通性,确保交付的物理机与合同承诺完全一致,西安租用整机硬件怎么验收:先搞清楚你要查什么拿到服务器交付清单时,别急着通电,先理清思路,把验收重点拆分成几个明确的维度,准备工作做得越细,后期业务上线上线后踩坑的概率就越低,明……

    服务器宽带 2026年8月9日
    1900
  • GlobalSign SSL证书好用吗?SSL证书多少钱一年

    GlobalSign SSL证书凭借其在根证书信任库中的广泛兼容性、严格的身份验证流程以及灵活的部署支持,是企业构建高安全性网站的首选方案,尤其适合对品牌信誉和数据合规有高标准要求的跨国业务及金融电商场景,在网络安全日益严峻的今天,选择一款靠谱的SSL证书不再仅仅是为了消除浏览器地址栏的“不安全”警告,更是品牌……

    2026年6月18日
    2600
  • Access数据库基本知识点有哪些?Access数据库入门教程

    Access数据库是微软Office套件中轻量级关系型数据库管理系统,适合个人开发者、中小型企业进行数据录入、查询与报表生成,其核心优势在于低门槛、高集成度及无需独立服务器部署,Access数据库核心架构与适用场景Access并非传统意义上的企业级大型数据库,它更像是一个“口袋里的数据仓库”,对于初学者或小型团……

    2026年7月3日
    2000
  • 广域网模拟器linux怎么用?linux广域网模拟器推荐

    在Linux环境下构建广域网模拟环境,是企业验证网络架构、优化应用性能及降低部署风险的最优解,其核心价值在于利用开源生态的低成本与高灵活性,精准复现复杂网络环境中的延迟、抖动与丢包现象,从而在实验室阶段完成对系统健壮性的极限测试,核心结论:Linux是构建广域网模拟器的最佳平台对于网络工程师和运维团队而言,选择……

    2026年4月2日
    9700
  • 域名注册到底要多少钱?域名注册价格查询

    域名注册费用并非固定不变,普通.com域名首年通常在50-80元人民币,而冷门后缀或特殊域名可能低至几元或高达数千元,具体价格取决于后缀类型、注册商促销策略及续费标准,很多初次接触建站的朋友,往往会被“1元域名”的广告吸引,却在续费时遭遇“天价”账单,这种价格落差不仅让人困惑,更可能影响网站的长期运营预算,域名……

    2026年6月22日
    1510
  • bgp服务器带宽稳定性如何?BGP服务器带宽稳定吗?

    BGP服务器带宽稳定性总体表现卓越,是实现跨运营商高速互联的首选方案,其核心优势在于智能切换与冗余机制,能将网络抖动降至最低,保障业务连续性,对于追求极致用户体验的企业而言,BGP线路不仅是技术升级,更是业务护城河,智能路由切换机制保障高可用性BGP协议的核心价值在于其智能路由选择能力,传统单线服务器一旦遭遇运……

    2026年3月4日
    12600

发表回复

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