Cygwin ssh - 无法访问身份文件

Posted

技术标签:

【中文标题】Cygwin ssh - 无法访问身份文件【英文标题】:Cygwin ssh - Identity file not accessible 【发布时间】:2013-01-30 19:00:43 【问题描述】:

我一直在尝试使用 Cygwin 建立 ssh 连接,但它无法识别我的 id_rsa 公钥文件。

我的命令行如下:

$ssh XXX@XXX -i /home/XXX/.ssh/id_rsa
Warning: Identity file /home/XXX/.ssh/id_rsa not accessible: No such file or directory.
Permission denied (publickey,XXX).

(对不起,我用XXX作为私人信息。)

我将 .pub 文件复制到 C:\cygwin\home\XXX.ssh 文件夹。但它仍然会吐出相同的错误消息。

非常感谢您。

【问题讨论】:

【参考方案1】:

背景

大多数 cygwin 可执行文件,将 Unix 路径 /home/XXX/.ssh/id_rsa 映射到 Windows 路径 C:\cygwin64\home\XXX\.ssh\id_rsa。除了 ssh.exe 将相同的 Unix 路径映射到 Windows 路径 C:\home\XXX\.ssh\id_rsa

也就是说,如果你做cat ~/.ssh/id_rsa,它会打印出C:\cygwin64\home\XXX\.ssh\id_rsa的内容,但如果你做ssh XXX@XXX -i /home/XXX/.ssh/id_rsa,它会尝试从C:\home\XXX\.ssh\id_rsa读取密钥。

我认为这是 Cygwin 中的错误。无论如何,这对我来说是一种解决方法(在 Windows 10 和截至 2020 年 10 月的最新版本的 Cygwin 上)。

解决方案

打开管理员命令提示符。转到C:\ 并发出命令mklink /D home c:\cygwin64\home

就是这样。

但至少对我来说,一旦我解决了上述问题,我就开始遇到这个超级用户问题https://superuser.com/questions/1296024/windows-ssh-permissions-for-private-key-are-too-open 中描述的问题。我使用了最受好评的答案中的解决方案,ssh 终于为我工作了。

【讨论】:

【参考方案2】:

从您的帖子看来,SSH 正在寻找 /home/XXX/.ssh/id_rsa 并且没有找到它。确保您复制的 .pub 文件命名正确并具有正确的权限。

【讨论】:

嗨。谢谢您的意见。但是我对这个 .pub 文件的权限确实有“完全控制权”。也不是文件名不正确。 它实际上是在寻找具有特定名称 id_rsa 的文件,而不是 id_rsa.pub 或其他以“.pub”结尾的文件。该文件应该是 private 密钥文件。 .pub 文件是 public 密钥文件,这不是它要查找的文件。【参考方案3】:

尝试将选项放在主机名之前...

【讨论】:

以上是关于Cygwin ssh - 无法访问身份文件的主要内容,如果未能解决你的问题,请参考以下文章

mysql 无法连接 SSH 隧道 -> 拒绝访问“无”

禁用 SSH 的密码身份验证无法按预期工作 Ubuntu 14.04 LTS

Access Denied! 网站访问被拒绝是怎么回事?

源码时代前端干货分享|swoole开启后无法访问问题

无法使用跨不同机器生成的访问令牌进行身份验证

无法通过 ssh 连接到 Github,无法访问 .ssh.config