🤡 服务器拒绝了我的ssh免密登录

阿轩的BUG
文章191
评论56
标签101
站点日志
作者总数:1位
置顶文章:0篇
标签总数:101条
文章总数:196篇
评论总数:56条
微语总数:201条
运行天数:2315天
最近更新:2026-07-28
文章标签
最新评论
Sherlock
2025-08-21
不是应该打包成apk文件吗,怎么突然就运行编译了,下一步呢
老金er
2025-05-25
人生设计非常必要,在信息化发达的今天,周围大部分人依然只能过着人生工程模式生活,长时间生活洗礼后,尽管“人生工程”已经不再适合很多人,他们也无法做出任何改变,人生设计给我们提供了新的思路,值得尝试
赏帮赚
2025-05-25
职场太多的尔虞我诈
三笑
2024-08-16
emlog6.0.1可以升级支持吗?
pony
2024-07-08
这篇文章提供了一种新的人生规划方法——"人生设计",它借鉴了产品设计的理念,鼓励人们以创造性和探索性的方式思考和规划自己的生活。以下是对这篇文章的几个评价维度: 创新性:将产品设计的理念应用于人生规划是一个新颖的视角,为人们提供了一种跳出传统生活轨迹,探索个性化生活路径的方法。 实用性:文章不仅提出了理念,还详细介绍了具体的实施步骤,包括自我评估、制定计划、原型设计和实践选择等,具有很强的操作性。 启发性:通过强调好奇心、不断尝试、重新定义问题等心态,文章鼓励人们打破常规,勇于探索未知,这对于激发个人潜能和创造力具有积极作用。 适应性:"人生设计"理念适用于不同人生阶段和不同背景的人,无论是希望从头开始的人,还是已经取得一定成就但希望探索新方向的人,都可以从中获得启发。 情感共鸣:文章对许多人对传统生活轨迹的不满和对改变的渴望进行了深刻的洞察,能够引起读者的共鸣。 可持续性:人生设计强调的是一个持续迭代和试错的过程,这与现实生活的发展规律相吻合,有助于人们在不断变化的环境中做出适应性调整。 教育意义:作为一种人生规划方法,"人生设计"可以作为教育的一部分,帮助年轻人更早地学会自我探索和规划,为未来的生活和职业发展打下基础。 局限性:尽管"人生设计"提供了一种新的思考框架,但它可能需要个人具备一定的自我认知和反思能力,对于一些缺乏自我探索经验的人来说,可能需要额外的指导和支持。 总体来说,这篇文章提供了一种有价值的人生规划方法,对于那些渴望改变、寻求个性化生活的人来说,是一种有益的参考和指导。
首页值得一看 🔍️

众里寻他千百度,蓦然回首,答案就在眼皮子底下……

正如标题所述,我遇到的问题是服务器拒绝了我的ssh免密登录,具体情况是我之前已经配置好了ssh免密登录,但是最近突发 PC ssh 登录云服务器报错,接连好些天都没找到原因。

ssh 免密码登录本身不是一个复杂的问题,百度 / google 上面随便都找得到教程。关键点在于:

  1. 基于 RSA 密钥对保障通信的安全。
  2. 将公钥传递到目标服务器的 ~/.ssh/authorized_keys 中。
// 生成密钥
ssh-keygen -t rsa -b 4096 -C "your comment"
// 将公钥发送到目标服务器
ssh-copy-id -i ~/.ssh/id_rsa.pub user@host
// 免密登录
ssh user@host

我自己的一台个人服务器原本也配置好了 authorized_keys,免密登录一直用得挺好,在PC本地,remote CI/CD 中一直跑得通。

然而,最近我不知道在服务器上调整了什么,或者是我的 PC 发生了什么升级,不记得了,反正现象就是在 git bash 使用 ssh 免密登录上不去了,一直提示 Permission denied (publickey) 之类的报错信息,但是在 xshell 或者 CI/CD 中都是正常的。

$ ssh txcentos
username@xxx.xx.xx.xx: Permission denied (publickey).

网上自然有各种类似问题,解决方案诸如修改 .ssh 目录权限,修改 sshd_config 配置等,或者是说你的密钥不对(然而重新生成了也一样,emm…)。

  • 调整了权限,发现不是权限的问题
chmod 700 ~/.ssh
chmod 600 .ssh/authorized_keys
  • 调整了 sshd_config 的几个关键配置,发现也不是这个问题。
PermitRootLogin yes
PubkeyAuthentication yes
PasswordAuthentication no

// 调整之后重启服务
systemctl restart sshd.service
// 或者
service sshd restart

其实我心里很清楚,我的问题可能不是这些情况,即使从报错信息上看还是差不多的。我抱着试试的态度,改了一遍又一遍,还是不太行,要么是提示 denied,要么是 ssh 登录时让我输入密码(这还怎么免密),有点崩溃。

最终决定从 ssh 命令上 debug 看看报错信息(这是我之前忽略的,应该从这里开始查的),

$ ssh txcentos -v

找到了这么一个关键信息。

debug1: send_pubkey_test: no mutual signature algorithm
debug1: No more authentication methods to try.

顺着no mutual signature algorithm这个信息查到了一些资料,由于 OpenSSH 从 8.8 版本由于安全原因开始弃用了 rsa 加密的密钥,需要在 .ssh 的 config 配置中加入这么一行:

PubkeyAcceptedKeyTypes +ssh-rsa

经测试真的管用,免密登录成功!

$ ssh xxx
Last login: Tue Sep  6 xx:xx:47 2022 from xxx.xx.xxx.xxx

同时我也检查了 PC 的 openssh 版本,确实是高于 8.8 版本的。

$ ssh -V
OpenSSH_9.0p1, OpenSSL 1.1.1o  3 May 2022

接着我还是去查阅 openssh 8.8 的发行日志核实了一下,确实有关于 security 的 incompatible changes,具体与 RSA/SHA-256/512 和 RSA/SHA1 有关。

详细资料可以参考 https://www.openssh.com/txt/release-8.8

上一篇
📱 H5页面不同屏幕适配:纯CSS方案
下一篇
🧐 怎么防止同事用Evil.js的代码投毒