2

我在 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 权限继承,并删除除我的用户之外的任何人的访问权限。但这似乎没有任何效果。

4

2 回答 2

2

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

如果 rsync.exe 不存在,请将其添加到您的 %PATH% 中:

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

更改为您的 SSH 私钥所在的文件夹:

cd c:\users\myuser\.ssh\

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

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
于 2017-09-07T17:41:17.670 回答
2

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

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

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

(请注意,我发现有必要从 SYSTEM 和 Administrators 中删除权限才能使其正常工作。它可能仍然与一个或另一个存在一起工作,但我一次删除了两者并发现它以这种方式工作。)

于 2019-07-15T14:40:53.893 回答