gitlab: Windows: 如何使用 chmod 和修复 "Get Permission denied (publickey). fatal: Could not read from remote repository"

gitlab: Windows: How to use chmod and fix "Get Permission denied (publickey). fatal: Could not read from remote repository"

我浏览了很多关于上述错误的其他帖子,但它们似乎都是出于不同的 OS,或者出于某种不同的原因。

我是 运行 Windows 8.1。我已经安装了 git(我是 git 的新手),并且已经注册了 gitlab,在那里创建了一个项目,创建并添加了密钥(按照说明),但是当我尝试进行推送时,我得到

Pushing to git@gitlab.com:myusername/Test1.git
Permission denied (publickey).
fatal: Could not read from remote repository.

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

现在,当我使用

创建我的 ssh 密钥时
ssh-keygen -t rsa -C "myemail@gmail.com

它确实在本地项目文件夹中创建了文件,而不是在 C:\Users\Peter(我的主文件夹)

所以,复制了单个文件(known_hosts)我删除了现有的.ssh文件夹,并使用bash创建,然后与创建的id_rsa.pub一起复制到上面和 idrsa.key 个文件。

来自GitGui,如果我去帮忙| Show SSH Key is reports "Found a public key in ~/.ssh/id_ras.pub

来自 bash,我对该文件夹的权限是。

drwxr-xr-x    1 Peter    Administ        0 Jun 14 09:35 .ssh

其中文件的权限是..

$ ls .ssh  -l
total 2
-rw-r--r--    1 Peter    Administ      403 Jun 13 18:26 id_rsa.pub
-rw-r--r--    1 Peter    Administ     1766 Jun 13 18:26 idrsa.key
-rw-r--r--    1 Peter    Administ      184 Jun 13 18:11 known_hosts

我假设我需要修复这里的权限?

所以我进入 .ssh 文件夹并尝试 chmod 777 *

但是当我使用 ls -l 查看权限时,它们并没有改变

同样,当我在实际目录 .ssh 上尝试时,权限保持原样

所以,问题是

  1. 我的方向是否正确,问题是 folder/files 的权限吗
  2. 如果是这样,我该如何解决这个问题(在 Windows 8.1 上)

我完全不知道接下来要尝试什么

在此先感谢您的帮助!

Am I on the right track here, is it the permissions of the folder/files that are the problem

并非如此:"permission denied" 由 GitLab 服务器发回,因为它无法识别您的 ssh public 密钥。

首先,如GitLab ssh keys doc page所述:

Copy-paste the key (id_rsa.pub content) to the 'My SSH Keys' section under the 'SSH' tab in your user profile. Please copy the complete key starting with ssh- and ending with your username and host.

其次,ssh 将在本地查找 %HOME%.
中的私钥和 public 密钥 并且 Git 中未默认定义 %HOME%,除非您启动 git-cmd.exegit-bash.exe 与 Windows 2 的最新 Git 打包在一起。 4.x+.

所以:

  • 确保 grep PortableGit-2.4.3.1-2nd-release-candidate-64-bit.7z.exe,并将其解压缩到任何你想要的地方(例如:c:\prgs\git\PortableGit-2.4.3.1-2nd-release-candidate-64-bit)
    不要安装 old obsolete msysgit 1.9.5 from git-scm.com. As I explained, it will soon be phased out.
  • c:\prgs\git\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\usr\bin 添加到您的 %PATH%(它包括 ssh.exe
  • 启动 c:\prgs\git\PortableGit-2.4.3.1-2nd-release-candidate-64-bit\git-cmd.exe,然后看到 %HOME% 是 define (set HOME).
    它应该默认定义为您的 %USERPROFILE% (c:\Users\<yourLogin>)
  • 生成您的 ssh 密钥(或在 %HOME%\.ssh 中复制您现有的密钥)。不用担心 chmod 或权限。
  • 确保您的 ssh public 密钥已复制到您的 GitLab ssh 密钥页面。

然后,测试 ssh 是否有效:

ssh -Tv git@gitlab.com

现在你可以开始推送了。