如何用密钥对替代口令登录远程主机?,SSH免密登录怎么设置?

为什么说口令登录是远程主机的“阿喀琉斯之踵”

用密钥对替代口令登录远程主机,是目前消除SSH暴力破解风险最彻底的方法,推荐的操作路径是:生成密钥对、上传公钥、禁用口令认证,三步完成,耗时不超过十分钟,收益是永久告别弱口令焦虑。

说起远程管理Linux服务器,大多数朋友第一反应就是ssh root@服务器IP,然后输密码,这个习惯在早期挺方便,但在当今的互联网环境下,纯口令认证就像把家门钥匙挂在门口脚垫下面只要公网上的扫描器转悠到你家门口,顺手就能摸一摸。

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

口令登录的三个致命伤

  • 暴力破解无休止:只要服务器暴露在公网,22端口就无时无刻不在承受自动化脚本的试探,据统计,一台公网IP的服务器每天收到数百次陌生SSH连接请求相当常见,多数是循环尝试root/admin/test这类用户名搭配简单密码。
  • 撞库风险防不住:很多人习惯把同一套口令用在多个平台,一旦某个网站泄露了密码库,攻击者就会拿着这些“密码字典”来试你的服务器,这叫撞库攻击。
  • 中间人难察觉:在没有证书校验的纯口令场景下,如果DNS被劫持或ARP欺骗,客户端可能把密码送进攻击者伪造的“服务器”手里。

行业共识认为,纯口令认证在公网环境下已经不再适合作为唯一的身份验证手段,而密钥对认证恰好从机制上绕开了人性弱点你不需要“任何复杂密码,只需要保管好一个私钥文件。

SSH密钥登录和密码登录哪个安全?先算清这笔账

在讨论配置之前,有必要把这两种认证方式的底层逻辑摆出来。

如何用密钥对替代口令登录远程主机?,SSH免密登录怎么设置?

对比维度 口令登录 密钥对登录
认证要素 你记住的东西 你拥有的东西(私钥文件)
暴力破解难度 取决于密码强度,普通的8位密码在算力强大的集群面前并不牢靠 理论上需要穷举256位以上的私钥空间,当前算力完全无能为力
泄露风险 口令可被复制、可被社会工程学套取 私钥不出本地,公钥泄露不影响安全
便捷性 每台机器一个密码,多了记不住 一把私钥通配多台服务器,公钥随便分发
审计能力 无法区分“哪个谁”用了root密码 每个管理员各有密钥,日志能精确追踪到个人

很多人在“安全”和“方便”之间纠结,其实密钥对登录的真正便利之处在于:你可以把同一把公钥部署到几十台服务器上,然后用唯一的私钥从容地逐个登录,相比切换每台机器去敲不同密码,这省下的时间非常可观,至于Windows用户担心操作门槛,稍后会细说。

密钥对登录远程主机的完整配置流程

整个配置过程可以拆成四个环节:生成、部署、加固、验证,每一步都有可复核的结果,不必担心“配完连不上”的狼狈。

生成密钥对:选对算法和参数

在本地电脑(客户端)上生成密钥对,推荐优先使用ed25519算法,它比传统的RSA-2048更短、更快,也足够安全,如果你的系统比较老,只能用RSA,那么务必把位数拉高到4096位。

$ ssh-keygen -t ed25519 -C "my-aliyun-server" -f ~/.ssh/id_ed25519

执行后会有两个提示:

  • 设置私钥口令:如果输入了一个口令,那么每次使用私钥时都要再验证一次,等于多了一道双因子认证,建议设置,成本低且收益明显。
  • 确认保存路径:默认存放于~/.ssh/目录下,生成两个文件:id_ed25519是私钥,id_ed25519.pub是公钥,两者务必分清,私钥一旦外泄,后果等同账户失守。

部署公钥到目标服务器

公钥可以理解成一把“锁”,装到服务器上,只有你的私钥这把“钥匙”能打开,上传公钥有两条路:

一键部署(推荐),本地执行:

$ ssh-copy-id -i ~/.ssh/id_ed25519.pub root@服务器IP

脚本会自动把公钥追加到服务器~/.ssh/authorized_keys文件中,顺便把目录权限修正到合理范围。

手动部署(更透明),适合没有ssh-copy-id的场景(比如Windows PowerShell):

$ ssh root@服务器IP "mkdir -p ~/.ssh && chmod 700 ~/.ssh"
$ cat ~/.ssh/id_ed25519.pub | ssh root@服务器IP "cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"

这段操作的本质是:把公钥内容追加到目标用户的authorized_keys,同时设置正确的权限。.ssh目录是700权限,authorized_keys文件是600权限

如何用密钥对替代口令登录远程主机?,SSH免密登录怎么设置?

,这是SSH认证成功的前提,很多奇怪的登录失败都由权限位错乱导致。

加固sshd配置:只允许密钥登录

公钥部署完毕后,先在另一个终端保持一个已登录的SSH会话,然后再修改配置文件,这一步纯粹是为了兜底万一改错了,不至于被锁在门外狼狈不堪。

编辑/etc/ssh/sshd_config,确保以下三行有效:

PubkeyAuthentication yes
PasswordAuthentication no
ChallengeResponseAuthentication no

把PasswordAuthentication改成no,是最后一步封死口令登录的开关,同时建议改掉默认端口,比如Port 2222,虽然密钥认证本身已经足够安全,但换个端口能显著减少日志中被刷屏的扫描噪音。

保存后重启服务:

$ sudo systemctl restart sshd

验证方式: 新开一个终端,用ssh root@服务器IP直接连接,没有提示输入密码且能顺利进入shell,说明密钥认证生效,如果还能敲密码登录,多半是sshd_config的语法有问题,可以用sshd -t检查。

Windows客户端怎么配置SSH密钥登录?

不少使用Windows桌面的同学觉得“密钥对”这东西是Linux老炮的玩具,其实今天的Windows 10和Windows 11已经内置了OpenSSH客户端,操作路径与Linux完全一致。

在PowerShell中生成密钥

打开PowerShell,执行:

ssh-keygen -t ed25519

生成的公钥默认在C:Users你的用户名.sshid_ed25519.pub,用记事本打开这个文件,复制全部内容。

粘贴到服务器

你已经用口令登录到了服务器上,执行:

mkdir -p ~/.ssh && chmod 700 ~/.ssh

然后用nano ~/.ssh/authorized_keys打开文件,粘贴刚才复制的公钥内容,保存退出,再执行chmod 600 ~/.ssh/authorized_keys,以后从Windows连接,只需:

ssh -i C:Users你的用户名.sshid_ed25519 root@服务器IP

如果不写-i,OpenSSH会自动读取默认路径下的密钥,所以这一步也可以省略。

老牌工具PuTTY用户怎么办

PuTTY使用的是自己的密钥格式.ppk,需要先用PuTTYgen把OpenSSH公钥格式转换过去,或者直接用PuTTYgen生成全新的密钥对,在PuTTY的Connection > SSH > Auth中加载私钥文件,接着在Session里填好服务器IP和端口,保存会话,以后双击即可免密登录。

如何用密钥对替代口令登录远程主机?,SSH免密登录怎么设置?

配置完成后,如何验证你的主机真的安全了?

配置完毕不能光靠“感觉”,下面几个检查项能让你确认服务器确实是密钥认证状态。

  • 检查sshd配置是否生效:执行sudo sshd -T | grep authentication,输出中应该看到passwordauthentication no,这才是sshd实际加载的运行时配置,光看配置文件可能会有错觉。
  • 检查最近登录记录:运行sudo tail -n 50 /var/log/auth.log,如果能看到Accepted publickey for root的记录,说明公钥认证成功;若还有Failed password的记录,请检查防火墙是否封禁了旧端口,以及是否还有别的服务停留在22端口。
  • 测试暴力破解的抵御能力:随便换一台电脑,尝试用ssh -o PreferredAuthentications=password root@服务器IP连接,系统会直接拒绝密码方式并断开,而不是提示错误密码,这就说明认证链路已经堵死。

如果追求更极致的防护,可以叠加fail2ban来监控多次认证失败的IP并自动拉黑,给密钥认证再加上一道保险网,不过在你已经关闭密码认证的情况下,这层防护基本是防患于未然的备份方案。

Q&A:密钥对登录远程主机的常见问题

问:密钥对登录远程主机配置失败,最常见的原因是什么?

答:多数情况是权限问题。.ssh目录必须为700权限,authorized_keys文件必须为600权限。/etc/ssh/sshd_config中如果你设置了AuthorizedKeysFile路径,要确保该路径与实际公钥存放位置一致,还有少数情况与SELinux相关,检查/var/log/audit/audit.log里是否出现denied的上下文记录,执行restorecon -Rv ~/.ssh可解决多数SELinux拦截问题。

问:我有多台服务器,可以使用同一把公钥登录它们吗?

答:可以,并且这是相当普遍的运维习惯,同一把私钥作为你的唯一身份凭证,公钥可以分发到任意数量的服务器上而无泄露风险,需要区分权限时,建议为不同管理员生成各自的密钥对,将各自的公钥部署到不同用户的authorized_keys中,服务器日志便能精确追踪每个操作者,在大规模的云服务器场景下,不少团队会使用密钥对作为标准准入方案,配合配置管理工具批量分发公钥,整体成本远低于维护一套口令系统。

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

赞 (0)
如何为网站服务配置证书并强制跳转加密连接,怎么操作?
上一篇 2026年9月16日 18:57
如何在服务器端部署入侵检测,异常登录怎么防范
下一篇 2026年9月16日 18:57

相关推荐

  • 边缘节点调度如何兼顾地理就近与缓存亲和性,边缘节点怎么选

    地理就近调度的目标是缩短物理距离,缓存亲和性的目标是提高内容复用,两者都不是银弹,但它们的协同设计——在就近候选集内用哈希做内容归属绑定——能同时压低回源成本和访问延迟,调度让用户少跑路,亲和让内容少回源,两个“少”叠加,才是边缘节点架构的真正价值,边缘节点缓存亲和性常见问题解答地理就近调度和缓存亲和性冲突怎么……

    2026年9月12日
    000
  • 2026年AI搜索品牌矩阵如何搭建,AI搜索优化怎么做?

    2026年AI搜索品牌矩阵搭建的核心在于从“关键词排名”转向“实体权威度建设”,通过在全网构建高可信度的信息节点,使品牌成为AI模型在回答相关问题时的首选引用源,AI搜索逻辑的底层演变在2026年的搜索环境下,百度等搜索引擎已全面进化为AI原生搜索,传统的SEO逻辑是让页面出现在前十名,而AI搜索的逻辑是让品牌……

    AI展现优化 2026年7月14日
    1200
  • 餐饮连锁GEO优化2026到店引流怎么做,引流方法有哪些

    2026年餐饮连锁通过GEO(生成式引擎优化)精准布局百度AI搜索,能直接提升到店客流量,这已成为本地餐饮品牌获客的新标配,当用户向百度AI提问“推荐一家适合五人聚餐的火锅店”或“北京哪家港式茶餐厅最正宗”,系统会优先抓取经过GEO优化的品牌信息,生成结构化答案,忽视这一环节的连锁品牌,等于主动放弃高意向的免费……

    2026年7月20日
    1600
  • 视频分段缓存配置如何降低回源压力?,服务器回源压力大

    让边缘节点只回源用户真正需要的那一小段,而不是为一次拖拽拉回整个视频文件,切片粒度、缓存键和热度过期策略配合好了,回源次数会断崖式下降,为什么整段缓存会让回源压力居高不下很多视频站点回源带宽打满,不是因为没人看,而是因为缓存单位太大了,边缘节点把完整视频文件当成一个缓存对象,用户拖到中间,缓存没命中,节点就向源……

    2026年9月12日
    300
  • 日均峰值和月度均值哪个更省钱?,云服务器计费怎么选?

    日均峰值计费和月度均值计费哪个更省预算,核心答案是:多数情况下日均峰值更省,但一旦你的业务有突发流量或周期波动,月度均值反而会带来意外的超额账单,关键在于你的流量曲线长得什么样,流量曲线这东西,很像人的作息,有人朝九晚五规律得像钟表,有人凌晨两三点还在刷视频,你按哪种方式交钱,决定权不在你手里,在你的用户手里……

    2026年9月14日
    100
  • 大模型推理KV缓存为何压垮显存?,显存不足怎么办

    KV缓存是Transformer模型推理时存储在显存中的历史键值对,它是显存压力的主要来源, 在长文本、多轮对话或高并发场景下,KV缓存甚至比模型权重更占显存,直接影响推理成本和部署方案,如果把大模型比作一位正在写长文的作者,KV缓存就是摆在手边的便签纸,作者每写一个新词,都要翻看之前记下的关键词和要点,同时再……

    2026年9月5日
    300
  • 带宽选择新手易踩哪些坑,家用宽带怎么选?

    别先盯数字大小,先看你家光猫到路由器、网线、墙插这套链路能不能跑满百兆——多数人花钱升了千兆,最后网速和两百兆一模一样,带宽采购这事,我见了太多人一上来就问”千兆够不够”,结果装完发现测速只有九十几兆,问题根本不出在运营商,而出在你家那根老旧的五类网线和百兆口路由器身上,选带宽前,先搞懂“标称值”和“实际值”的……

    2026年9月7日
    500
  • 回源请求量变化能验证清洗效果吗,清洗效果怎么判断?

    回源请求量在清洗开启后如果从攻击峰值明显回落并贴近正常业务基线,同时源站负载同步下降,基本可以确认清洗起了作用,反之,回源量依旧高企或剧烈波动,说明清洗规则可能存在漏过或阈值设置不当,回源请求量为什么能当“照妖镜”回源请求量指的是经过高防节点、CDN或清洗设备过滤之后,实际转发到源站服务器的请求数量,它像源站门……

    2026年9月15日
    200
  • 酒店GEO优化2026怎么预订引流,有什么技巧?

    酒店GEO优化是2026年酒店预订引流最直接有效的策略,通过地域化内容布局和搜索意图匹配,能显著提升自然搜索流量和转化率,酒店GEO优化怎么做:从关键词到内容布局GEO优化的核心是让搜索引擎的AI模型将你的酒店信息优先推荐给有明确地域需求的用户,操作路径并不复杂,但每一步都需要精准落地,第一步:深挖地域长尾词……

    2026年7月20日
    1500
  • 连锁餐饮如何做豆包搜索优化?,餐饮如何提升AI搜索排名?

    2026年连锁餐饮的搜索优化核心在于从“关键词匹配”转向“意图理解”,通过构建结构化知识图谱和高频真实的UGC反馈,让AI在生成答案时将品牌作为首选推荐,AI搜索时代的逻辑重构在2026年的搜索环境下,用户不再习惯于在搜索结果页点击十几个链接去筛选信息,而是直接向豆包、百度等AI助手询问“上海哪家连锁快餐性价比……

    2026年7月12日
    12000

发表回复

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