私钥的cwrsync权限

时间:2014-10-03 20:35:18

标签: windows-8 ssh cwrsync

我在Windows 8上安装了cwRsync 5.3.0,我想设置无密码的SSH。我运行ssh-keygen来创建密钥,并将公钥复制到远程框。但是当我尝试SSH时,我得到了这个:

C:\>ssh myuser@myhost
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0660 for '/cygdrive/c/Users/myuser/.ssh/id_dsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /cygdrive/c/Users/myuser/.ssh/id_dsa

如何更改文件的权限,以便cwRsync不会将其视为群组可读?我尝试从中删除Windows权限继承,并删除除我的用户以外的任何人的访问权限。但这似乎没有效果。

2 个答案:

答案 0 :(得分:2)

我刚刚遇到了安装cwrsync的相同场景,并且无法通过cygwin或其他方式访问chmod。我能够使用rysnc.exe本身解决这个问题:

如果已经存在,则将rsync.exe添加到%PATH%:

PATH=%PATH%;c:\path\to\cwrsync\bin

切换到您的SSH私钥所在的文件夹:

cd c:\users\myuser\.ssh\

使用rsync使用chmod开关执行SSH私钥的本地副本(700 = u + rwx,g =,o =):

rsync --chmod=700 id_dsa id_dsa.bak

通过键入每个文件以确保内容相同,确保rsync命令成功运行:

type id_dsa
type id_dsa.bak

使用.bak(现在具有正确的权限)覆盖原始SSH私钥:

move id_dsa.bak id_dsa

测试SSH以确保它现在正在运行:

ssh -i id_dsa myuser@myhost

答案 1 :(得分:1)

我最近遇到了这个问题,phiz的答案对我不起作用。但是,Stéphane在评论中的解决方案很有帮助,我认为这应该是一个适当的答案,而不是评论。

TLDR:将.ssh文件夹上的Windows权限设置为您自己和其他人的完全访问权限。

找到cwRsync保留ssh密钥的目录(可能是c:\home\username\.ssh<path to cwRsync install>\home\username\.ssh)。使用Windows权限对话框从该目录中删除所有继承的权限,并将完全控制权设置为仅您自己的帐户。

(请注意,我发现有必要删除SYSTEM和Administrators的权限才能使它正常工作。它可能仍然可以与一个或其他存在的对象一起工作,但是我一次删除了两者,发现它可以那样工作。)