如何正确配置服务器SSH私钥登录,具体步骤有哪些

服务器SSH登录配置的核心结论是:用SSH私钥替代密码登录,是提升服务器安全系数最直接、最有效的手段,配置过程不超过十分钟,一次配置长期受益。

为什么服务器ssh登录配置要选私钥而非密码

很多朋友刚开始接触云服务器时,习惯用ssh root@IP然后输入密码的方式登录,这种方式在个人测试环境里没什么问题,但一旦服务器暴露在公网,面临的扫描压力远超想象。

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

服务器ssh登录密码验证的三个痛点

  • 暴力破解风险高:公网服务器每时每刻都在被自动化脚本扫描,尝试常见用户名和弱密码。
  • 密码管理成本大:多台服务器使用不同密码容易忘,用相同密码又等于一锅端。
  • 无法精细控制权限:密码一旦泄露,等同于把服务器root权限交给了对方。

私钥登录的核心优势对比

SSH私钥登录采用非对称加密机制,私钥留在本地,公钥放在服务器端,服务器验证登录时,通过签名挑战来确认持有私钥的用户身份。

对比维度 密码登录 私钥登录
抗暴力破解 较弱,依赖密码强度 强,理论上不可穷举
泄露风险 密码可被钓鱼或撞库 私钥文件本地保存
多机管理 逐台记忆密码 同一私钥配多个公钥
审计追溯 可配合证书做细粒度溯源

业内专家指出,生产环境服务器强制关闭密码登录、只保留密钥认证,已经是安全基线中的标准动作,多数云厂商的安全组默认规则也会建议用户优先使用密钥对。

ssh密钥对登录服务器:从生成到落地的完整步骤

下面这套流程以Linux/macOS客户端为例,Windows用户使用PowerShell或WSL效果一致。

云服务器ssh登录配置前的准备清单

如何正确配置服务器SSH私钥登录,具体步骤有哪些

  • 一台IP可达的Linux服务器(如Ubuntu 22.04、CentOS 7+)。
  • 本地终端工具(macOS/Linux自带终端,Windows推荐PowerShell 7)。
  • 当前可用的密码登录方式,或云控制台的VNC应急入口。

生成密钥对的具体命令

在本地终端执行:

ssh-keygen -t ed25519 -C "your_email@example.com"

ed25519是目前性能和安全性均衡较好的算法,若需要兼容老旧系统,使用rsa -b 4096

一路上会询问保存路径和口令(passphrase),建议直接回车存到默认位置~/.ssh/id_ed25519,并设置一个额外的passphrase保护私钥文件,即使私钥泄露,没有passphrase也无法使用。

授权公钥到服务器的三连操作

首先生成公钥内容:

cat ~/.ssh/id_ed25519.pub

复制输出的整行字符串。

然后登录服务器(此时仍用密码),在服务器端执行:

mkdir -p ~/.ssh
chmod 700 ~/.ssh
echo "粘贴你刚才复制的公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

第三步,测试免密登录验证,在本地执行:

ssh root@你的服务器IP

如果直接进入服务器,说明公钥已经生效。此时回到服务器端,编辑/etc/ssh/sshd_config,将PasswordAuthentication改为no,然后重启SSH服务

sudo systemctl restart sshd

后续登录彻底告别密码,记得在修改配置前保持当前会话不退出,避免配置错误导致自己锁在门外。

客户端登录与别名加速

多台服务器时,在本地~/.ssh/config中添加配置:

Host my-server
    HostName 203.0.113.5
    User root
    IdentityFile ~/.ssh/id_ed25519

以后直接执行ssh my-server即可登录,这是日常管理中最省心的远程服务器SSH登录配置方式之一。

如何正确配置服务器SSH私钥登录,具体步骤有哪些

ssh私钥登录失败怎么办:高频错误对照排查

配置过程中出现意外在所难免,以下几个场景占据了大多数ssh私钥登录失败怎么办的搜索需求。

配置后仍提示密码的权限问题

确认服务器端目录和文件的权限是否正确:

chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

权限过宽(如authorized_keys为644)会导致SSH服务端拒绝信任该文件,同时检查客户端私钥权限:

chmod 600 ~/.ssh/id_ed25519

另外一个常见原因是sshd_config中指定了AuthorizedKeysFile路径,确保和实际文件路径一致,执行sudo grep -i authorizedkeysfile /etc/ssh/sshd_config查看。

私钥丢失与安全加固

私钥丢失不像密码找回那么简单,唯一的补救措施是使用云控制台的VNC登录服务器,重新写入新的公钥,所以生成密钥后,立刻将私钥备份到安全位置(如密码管理器),或复制一份到加密U盘。

安全加固层面,建议做两件事:

  • 修改SSH默认端口(如改为2299),减少扫描类攻击的噪音。
  • sshd_config中设置PermitRootLogin prohibit-password,保证root只能通过密钥登录。

对于需要异地登录的场景,可以在authorized_keys中为单个公钥加前缀限制来源IP,这个技巧对带公网IP的linux服务器ssh登录配置尤为实用。

私钥日常维护与多设备同步策略

当你习惯了密钥登录,接下来要考虑的是多设备使用体验,笔记本、办公室台式机、手机termius等工具,都需要访问同一台服务器。

多设备同步的主流做法

  • 不同设备生成不同密钥对:将各设备的公钥都追加到服务器authorized_keys中,好处是某一设备丢失可单独吊销,坏处是公钥文件管理需要条理。
  • 私钥文件跨设备拷贝

    如何正确配置服务器SSH私钥登录,具体步骤有哪些

    :将主私钥拷贝到其他设备,注意私钥本身用passphrase保护,且传输过程必须加密(如通过自建的WireGuard隧道)。

行业共识认为,按设备生成独立密钥对更安全,设备遗失时只需要移除对应那一行的公钥内容,无伤大雅。

定期轮换与审计

建议每半年到一年轮换一次密钥对,操作流程很简单:生成新密钥对,更新服务器公钥,确认新私钥登录成功后,再删除旧公钥,不要直接删除还没验证过的公钥,给自己留后路。

审计方面,查看服务器登录记录:

journalctl -u ssh --since today

或检查/var/log/auth.log中的Accepted publickey行,能清晰看到哪台设备在什么时间通过哪个公钥登录过。

常见疑问快速解答

服务器SSH登录配置中,id_rsa和id_ed25519选哪个更好?

ed25519密钥更短、生成速度快、安全性不低于RSA 4096,唯一限制是需要OpenSSH 6.5以上版本,目前主流Linux发行版和云厂商镜像都已完美支持,不需要兼容十年前的老系统时,首选ed25519。

修改端口后ssh登录命令怎么写?

ssh -p 2299 root@服务器IP

注意修改端口后,务必在云控制台安全组同步放行新端口,否则流量进不去,和没改一样。

服务器密码登录已经关闭,如何再添加新用户的公钥?

使用已有私钥登录服务器后,为新用户创建.ssh目录,写入公钥并配置权限,然后执行:

usermod -aG sudo newuser

没给新用户配sudo权限时,公钥写了也只能以普通用户身份操作。

服务器SSH登录配置这件事,本质上是把身份凭证从可猜测的字符串,升级为不可复制的数学签名,密码登录带来的便利性在安全意识面前不值一提,一次性花十几分钟完成私钥部署,之后每次登录都少一分风险,这笔账怎么算都划算。

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

(0)
采集失败提示collector未安装如何解决,是什么原因
上一篇 2026年8月18日 20:04
如何查询ICP备案号?,ICP备案号查询入口在哪里?
下一篇 2026年8月18日 20:27

相关推荐

  • Ogre 3D游戏开发,如何入门与提升技能,有哪些常见难题?

    要高效开发基于Ogre 3D的游戏,需深入理解其模块化架构与渲染管线设计,以下为分步实现方案:环境配置与项目初始化// 创建核心引擎对象Ogre::Root* root = new Ogre::Root("", "ogre.cfg");// 加载OpenGL渲染系统roo……

    2026年2月6日
    15310
  • Eclipse开发学习笔记怎么写?Java新手如何快速入门?

    Eclipse 作为 Java 开发领域的基石,其强大的可扩展性和成熟的调试功能使其依然是众多企业级开发的首选 IDE,掌握 Eclipse 不仅仅是学会如何编写代码,更在于理解其工作空间机制、高效调试技巧以及插件生态的运用,通过系统化的 eclipse 开发学习笔记 整理,开发者能够构建从环境配置到高级性能优……

    2026年2月26日
    15200
  • 开发商对棚户区改造有何政策?棚户区改造补偿标准是多少

    开发商参与棚户区改造,已从过去单纯的“拿地开发”模式,转型为追求社会效益与经济效益平衡的城市运营行为,核心结论在于:开发商对棚户区改造的成功介入,关键在于精准把控政策红利、构建成熟的资金闭环模型以及妥善解决复杂的社会安置矛盾,只有具备强大资源整合能力与风险控制体系的房企,才能在这一特殊领域中实现可持续盈利,并推……

    2026年4月5日
    7700
  • 发会员提醒短信哪个网站便宜?,哪个平台靠谱

    发会员提醒短信,选择按量计费、支持三网通发的低价短信平台,并在后台设置好模板和变量,是成本最低、效率最高的方式,没有之一,发会员提醒短信哪个平台便宜?很多运营者刚接触会员短信通知时,第一个反应就是看价格,确实,发会员提醒短信如果量不大,单价差异不明显;但一旦月发量上万甚至十万,几分钱的差距就是几百上千的成本,找……

    2026年7月28日
    400
  • linux云开发怎么样,linux云开发有什么优势

    Linux云开发已成为现代软件工程提效降本的核心引擎,其本质是通过云计算的弹性资源与Linux系统的稳定性优势,构建高效、安全、可扩展的研发环境,这种模式彻底改变了传统本地开发的局限性,实现了从“配置环境”到“专注代码”的根本性转变,核心结论在于:Linux云开发通过统一环境标准、弹性资源调度及云端协同能力,解……

    2026年4月10日
    8600
  • 行业网站开发公司哪家好?2026行业网站建设方案推荐,(注,严格遵循要求,双标题结构,前句为长尾疑问关键词行业网站开发公司哪家好,后句为搜索大流量词行业网站建设方案,总字数25字,无任何解释性内容。)

    行业网站开发是企业数字化转型的核心环节,通过构建专业、高效的在线平台,不仅能提升品牌形象,还能驱动业务增长,本教程将一步步指导你从零开始开发一个行业网站,涵盖规划、设计、编码到上线全过程,确保符合现代标准并优化SEO,理解行业网站开发的核心概念行业网站不同于普通网站,它针对特定领域如制造、医疗或教育,需整合行业……

    2026年2月12日
    12000
  • 微信打印机开发怎么做?微信打印机开发教程

    微信打印机开发的核心价值在于实现线上流量与线下服务的无缝闭环,通过自动化打印流程大幅降低人工成本,并利用微信生态的社交属性实现用户的裂变增长,对于企业而言,一套成熟的系统不仅能解决排队拥堵痛点,更是构建私域流量池的高效入口,微信打印机开发的商业逻辑与应用场景在数字化转型的浪潮中,传统打印服务面临着效率低下、获客……

    2026年3月25日
    10500
  • 简米云和酷番云适合谁?哪款进销存软件好用

    阿里云和腾讯云适合谁在云计算市场,阿里云与腾讯云长期占据双寡头地位,对于企业决策者、开发者及站长而言,选择哪一家云服务商并非简单的价格对比,而是基于业务场景、技术栈偏好及长期运维成本的战略决策,本文基于2026年的市场现状,从核心架构、性能表现、生态兼容性及性价比四个维度,深度剖析两家云厂商的适用人群,帮助读者……

    2026年7月6日
    8500
  • oss存储报错怎么解决?oss存储桶权限配置教程

    关于oss存储的一个问题在云原生架构日益普及的今天,对象存储(Object Storage Service, OSS)已不再仅仅是数据的“仓库”,而是决定应用性能、成本控制以及数据稳定性的核心基础设施,许多开发者和运维工程师在选型时,往往只关注单价,却忽略了隐性成本与架构适配度,本文将基于真实的服务器测评场景……

    2026年6月13日
    2610
  • 自己开发操作系统难吗?如何从零开始写一个操作系统

    独立开发一套操作系统是计算机科学领域极具挑战性的工程实践,它要求开发者具备从底层硬件交互到上层应用逻辑的全栈掌控能力,核心结论在于:自己开发操作系统并非单纯的代码编写,而是一个严密的系统工程,成功的关键在于构建正确的编译环境、精通CPU架构特性、实现稳定的内核原语以及建立高效的内存管理机制, 这不仅是技术的深度……

    2026年3月11日
    12400

发表回复

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