我一直在尝试使用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 文件夹。但它仍然会吐出相同的错误消息。
提前非常感谢你。
背景
大多数cygwin可执行文件,将Unix路径/home/XXX/.ssh/id_rsa
映射到Windows路径C:cygwin64homeXXX.sshid_rsa
。除了 ssh.exe 将相同的 Unix 路径映射到 Windows 路径C:homeXXX.sshid_rsa
。
也就是说,如果你cat ~/.ssh/id_rsa
,它会打印出C:cygwin64homeXXX.sshid_rsa
的内容,但如果你这样做ssh XXX@XXX -i /home/XXX/.ssh/id_rsa
它会尝试从C:homeXXX.sshid_rsa
读取密钥。
我认为这是Cygwin中的错误。无论如何,这是一种对我有用的解决方法(截至 10 月在 Windows 10 和最新版本的 Cygwin 上截至 2020 年 10 月)。
溶液
打开管理员命令提示符。转到C:
并发出命令mklink /D home c:cygwin64home
就是这样。
但至少对我来说,一旦我解决了上述问题,我就开始 https://superuser.com/questions/1296024/windows-ssh-permissions-for-private-key-are-too-open 遇到这个超级用户问题中描述的问题。我使用了最受好评的答案中的解决方案,ssh 终于为我工作了。
从您的帖子来看,SSH 似乎正在寻找/home/XXX/.ssh/id_rsa
并且没有找到它。确保您复制的 .pub 文件已正确命名并具有正确的权限。
尝试将选项放在主机名之前...