即使权限正确,也无法保护私有密钥文件

时间:2020-01-13 13:33:57

标签: git ssh

不受保护的私钥文件,即使权限正确也是如此。我尝试了600和400

以下来自控制台。

令人惊讶的是,它可以从cygwin使用。密钥的路径相同。我看到的唯一区别是ssh agent吗?

Microsoft Windows [Version 10.0.17134.112]
(c) 2018 Microsoft Corporation. All rights reserved.

C:\source\git\project>git pull
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions for 'C:\\Users\\<user>/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "C:\\Users\\<user>/.ssh/id_rsa": bad permissions
git@bitbucket.organisation.no: Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

C:\source\git\project>ls -alh C:\\Users\\<user>/.ssh/id_rsa
-r--r--r-- 1 <user> Domain Users 3.4K Jan 13 12:48 'C:\\Users\\user/.ssh/id_rsa'

C:\source\git\project>ssh -vvvT git@bitbucket.organisation.no
OpenSSH_for_Windows_7.6p1, LibreSSL 2.6.4
debug3: Failed to open file:C:\\Users\\user/.ssh/config error:2
debug3: Failed to open file:C:\\ProgramData\\ssh/ssh_config error:2
debug2: resolving "bitbucket.organisation.no" port 22
debug2: ssh_connect_direct: needpriv 0
debug1: Connecting to bitbucket.organisation.no[xxx.xx.xx.xx] port 22.

来自Cygwin

$ ssh -vvvT git@bitbucket.organisation.no
OpenSSH_8.0p1, OpenSSL 1.1.1d  10 Sep 2019
debug2: resolving "bitbucket.organisation.no" port 22
debug2: ssh_connect_direct
debug1: Connecting to bitbucket.organisation.no [xxx.xx.xxx.xx] port 22.

更新:我检查权限的方式有些奇怪吗?

C:\Users\user\.ssh>ls -alh id_rsa
-r--------+ 1 user Domain Users 3.4K Jan 13 12:48 id_rsa

C:\Users\user\.ssh>ls -alh C:\\Users\\user\\.ssh\\id_rsa
-r--r--r-- 1 user Domain Users 3.4K Jan 13 12:48 'C:\\Users\\user\\.ssh\\id_rsa'

2 个答案:

答案 0 :(得分:2)

您应确保您自己的私钥文件不能被其他用户读取。现在,每个人都可以阅读。

要修复私钥文件的权限,您可以运行以下命令:

chmod o-rwx C:\\Users\\user/.ssh/id_rsa

答案 1 :(得分:0)

您应该将文件(包含私钥)的所有者更改为您具有完全访问权限的用户名。然后删除有权访问该文件的其他用户名。

  1. 右键单击包含私钥的文件,然后单击属性,然后单击“安全”选项卡>“高级”通过单击更改按钮,您可以将所有者更改为您的用户名。 (如果您不知道用户名的名称,请在命令提示符下运行:“echo %USERNAME%”。)更改>高级...>立即查找

  2. 删除除您刚刚添加的权限条目之外的所有权限条目。

单击禁用继承> 转换继承的权限...然后删除除您刚刚添加的权限条目之外的所有权限条目。

相关问题