[求助] Windows 下 cmd 中 ssh 使用私钥连接腾讯云服务器,提示 Permission denied (publickey),但是使用软件 MobaXterm 可以连接上,原因及解决方案是什么?

2021-07-31 22:37:11 +08:00
 ManUnDead
对于私钥权限的问题,我已经按照网上搜索到的相关博客删除了其他主体的权限,只保留自己登录用户的权限,但是仍然连接不上。
看了一下 MobaXterm 是会在 temp 文件夹下生成一套类似 Linux 的运行环境的,想知道在使用同一个私钥文件的前提下 cmd 中 ssh 连接不上但是 MobaXterm 中可以连接上的具体原因,还有该如何解决 cmd 连接不上服务器的问题,谢谢大家。
2047 次点击
所在节点    Windows
11 条回复
301
2021-07-31 23:09:28 +08:00
ssh -v 看看 log ?
bipy
2021-08-01 10:03:51 +08:00
~/.ssh/config

PreferredAuthentications publickey
IdentityFile ~/.ssh/id_ed25519

这两条配置写好没?

如果不是上面的问题,那可能就是 LibreSSL 和 OpenSSL 的兼容问题,我碰到过一次...
mingl0280
2021-08-01 12:48:09 +08:00
去查 /var/log/auth.log
alittlecat
2021-08-01 13:06:54 +08:00
可能是 windows 自带的 ssh,对密钥文件的权限要求比较奇葩
之前遇到这个问题,折腾很久,选择先开 wsl 再 ssh 连接
gBurnX
2021-08-01 14:33:04 +08:00
用 xshell,最好的 win 连接 linux 工具,没有之一。
PolarBears
2021-08-01 15:07:46 +08:00
https://github.com/PowerShell/Win32-OpenSSH/releases/tag/V8.6.0.0p1-Beta
试试更新下 windows 的 ssh 看看,自带的 openssh 连接一些服务器会有问题。
ManUnDead
2021-08-01 17:17:24 +08:00
谢谢大家的建议,问题已经解决了,不过原因跟大家想的不太一样。问题原因在于自己本地生成过一次公钥和私钥,现在使用的私钥是从其他机器上拷贝过来替换的,但是还保留着之前的公钥文件,ssh 连接的时候如果客户端存在公钥会针对该公钥验证私钥(只是我的猜测),解决方案只要删除对应文件名的.pub 文件即可。
dorothyREN
2021-08-02 13:09:30 +08:00
@gBurnX #5 不把 SecureCRT 当人呗
Ryanxxx
2021-08-02 13:35:47 +08:00
chmod 600 publickey
openbsd
2021-08-02 15:17:13 +08:00
@dorothyREN #8
Xshell 后来居上极有可能是 SecureCRT 对“试用”用户不友好😅
dorothyREN
2021-08-02 23:41:41 +08:00
@openbsd #10 我买的授权。。。。挺友好。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/792921

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX