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 上尝试时,权限保持原样
所以,问题是
- 我的方向是否正确,问题是 folder/files 的权限吗
- 如果是这样,我该如何解决这个问题(在 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.exe
或 git-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
现在你可以开始推送了。
我浏览了很多关于上述错误的其他帖子,但它们似乎都是出于不同的 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 上尝试时,权限保持原样
所以,问题是
- 我的方向是否正确,问题是 folder/files 的权限吗
- 如果是这样,我该如何解决这个问题(在 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.exe
或 git-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
现在你可以开始推送了。