我的问题是我不能从GitLab中push或fetch。但是,我可以克隆(通过HTTP或SSH)。当我试图推的时候,我得到这个错误:

权限被拒绝(publickey)致命:无法从远程存储库读取

从我看过的所有线索来看,以下是我所做的:

在我的电脑上设置一个SSH密钥,并将公钥添加到GitLab 完成了用户名和电子邮件的config -global 通过SSH和HTTP克隆,以检查它是否能解决问题 执行ssh -T git@gitlab.com命令

如果您对如何解决我的问题有任何见解,我将不胜感激。


当前回答

在我的例子中,在更新到12.9.2之后,我需要更新我的sshd_config文件以使用Authorized command keys指令。

这里的文档解释了一切: https://docs.gitlab.com/ee/administration/operations/fast_ssh_key_lookup.html

当我重新启动ssh时,密钥完美地工作了。

其他回答

创建SSH密钥后,您只需要添加公钥,通常命名为:

id_rsa . pub

OR

id_ed25519.pub

通过使用GitLab最新的工作URL:

https://gitlab.com/-/profile/keys/

我的问题是,我在/etc/ssh/sshd_config下的SSH配置文件中将UsePAM从yes切换为no。有了UsePAM,一切都很完美。

修改权限::chmod 400 ~/.ssh/id_rsa 这对我很有帮助。

我找了很久才找到这个。这对我来说是完美的。

Go to "Git Bash" just like cmd. Right click and "Run as Administrator". Type ssh-keygen Press enter. It will ask you to save the key to the specific directory. Press enter. It will prompt you to type password or enter without password. The public key will be created to the specific directory. Now go to the directory and open .ssh folder. You'll see a file id_rsa.pub. Open it on notepad. Copy all text from it. Go to https://gitlab.com/-/profile/keys or Paste here in the "key" textfield. Now click on the "Title" below. It will automatically get filled. Then click "Add key".

现在试一试,肯定会管用的。

这可能听起来很愚蠢,但请确保您的系统和git客户端使用相同的ssh客户端。这在Windows上可能是最相关的。

当您安装现代版本的Windows时,默认情况下会安装OpenSSH客户端,而当您为Windows安装Git时,它在内部使用自己捆绑的ssh客户端。因此,您需要将Git for Windows指向您的OpenSSH安装。

对于任何其他第三方ssh客户端也是一样的,我们在这里只选择OpenSSH作为我们的客户端。

Win + R => cmd 如果安装了OpenSSH路径 Win + S => '编辑环境变量 系统变量=>查找GIT_SSH密钥 编辑或创建(如果不存在),将其值设置为OpenSSH path 创建一个新的终端实例,现在应该在其中应用更改,这样就可以继续了。

注意,如果你使用的是VS Code或其他具有集成终端的编辑器,仅仅创建一个新的编辑器是不够的,你需要重新启动你的编辑器。