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

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

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

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

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

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

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

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

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

相关推荐

  • 域名解析指向怎么选,A记录和CNAME哪个好?

    域名解析指向域名时,A记录和CNAME的选择核心看“目标值”是什么:目标为IP地址选A记录,目标为另一个域名选CNAME,但在实际业务中,根域限制、变更频率、解析性能和邮箱服务等细节,往往比“选哪个”更重要,很多新手站长在配置域名解析时,都会在“A记录”和“CNAME”两个选项前犹豫,尤其是当你的解析值本身就是……

    2026年9月1日
    100
  • 宝塔Linux面板FTP连接失败怎么办?ftp服务未启动怎么解决

    宝塔Linux面板FTP连接失败的核心原因通常集中在防火墙端口未放行、FTP服务未启动或被动模式配置错误,建议优先检查面板安全组及vsftpd服务状态,当你在宝塔面板中遇到FTP无法连接的情况时,焦虑是难免的,这不仅仅是技术故障,更可能是服务器安全策略与客户端配置之间的“沟通断层”,很多用户第一反应是重装软件……

    2026年6月20日
    1800
  • WordPress屏蔽右键复制怎么设置?网站禁止复制代码

    WordPress网站屏蔽右键复制功能可以通过添加自定义CSS代码或安装专用插件来实现,其中CSS方案轻量且无需额外依赖,是大多数站长首选的防复制手段,创作领域,原创性是网站的生命线,当你的文章被他人轻易复制粘贴时,不仅侵犯了知识产权,还可能导致搜索引擎判定你的内容为重复内容,从而降低排名,许多站长在搭建网站初……

    2026年6月18日
    3000
  • 如何制作html个人简易网站?零基础建站教程

    作品集 描述… 描述… © 2026 我的个人网站“`第三步:添加CSS美化样式默认的HTML页面显得单调乏味,通过CSS可以赋予其现代感,建议采用Flexbox或Grid布局,确保页面在不同设备上都能良好显示,全局重置:清除浏览器默认边距,设置字体族,响应式设计:使用@media查询适配手……

    2026年6月8日
    3100
  • 广州云主机卡顿原因有哪些?广州云主机为什么卡顿

    广州云主机卡顿的核心症结在于资源供需失衡、网络链路拥堵及配置策略失当,解决卡顿问题的关键在于精准监控、弹性扩容与架构优化,企业用户在遭遇性能瓶颈时,切勿盲目升级硬件,应通过系统化的排查逻辑定位根因,结合简米科技的专业运维支持,实现云主机性能的最大化释放, 资源超售与硬件瓶颈:底层算力的隐形天花板云主机的性能表现……

    2026年3月28日
    8800
  • OpenCart后台密码忘了怎么办?如何重置管理员密码

    OpenCart后台密码找回最稳妥的方式是直接通过服务器数据库修改管理员密码,若无法访问数据库,则需通过FTP上传临时脚本重置,切勿盲目尝试暴力破解以免锁定账户,很多站长在遇到OpenCart后台登录问题时,第一反应往往是焦虑,尤其是当网站承载了重要的电商业务时,这种焦虑感会被放大,OpenCart作为开源电商……

    2026年6月18日
    2300
  • html5手机网站制作教程怎么做?零基础快速搭建移动网页

    制作HTML5手机网站的核心在于采用响应式布局结合移动端优先的设计策略,确保页面在不同尺寸设备上均能流畅加载且交互友好,无需开发独立APP即可实现跨平台覆盖,绝大多数用户通过智能手机获取信息,传统PC端网站在移动端的体验往往大打折扣,构建一个高质量的HTML5手机网站,不仅是技术升级,更是获取自然流量、提升品牌……

    2026年6月7日
    4500
  • html图标悬浮图片怎么设置?html图片悬停显示文字

    HTML图标悬浮图片的核心在于利用CSS的position: absolute配合父容器position: relative实现层级覆盖,并通过transition属性添加平滑的过渡动画,从而在鼠标悬停时触发显示效果,这是目前前端开发中提升交互体验最基础且高效的技术方案,在网页设计的微观交互领域,用户不再满足于……

    服务器宽带 2026年6月6日
    3000
  • 服务器带宽费用明细,服务器带宽一年多少钱

    服务器带宽费用明细直接关系到企业IT成本控制的命脉,市场上报价混乱、虚标严重是普遍现象,真实报价并非单一数字,而是由带宽类型、线路质量、计费模式共同决定的动态成本结构, 一般而言,国内优质BGP带宽的真实成交价在50元/Mbps/月至150元/Mbps/月之间,低于此区间往往伴随共享带宽的风险,企业要想获得高性……

    2026年3月3日
    13600
  • Shopify怎么卖电子书?虚拟产品收款发货教程

    在Shopify上销售电子书等虚拟产品的核心在于利用数字交付应用实现自动化发货,通过精选高转化主题内容与精准SEO引流,构建无需物流的零边际成本盈利模型,消费的普及,越来越多的创作者和商家开始转向线上知识变现,相比实体商品,虚拟产品省去了仓储、包装和物流环节,利润空间极大,许多新手在起步阶段往往卡在“如何交付……

    2026年6月24日
    1600

发表回复

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