解决Git 的 Permission denied, please try again 错误

一种解决Permission denied, please try again.错误的办法。

解决Git 的 Permission denied, please try again 错误

By img Microanswer Create at:Apr 19, 2022, 11:01:35 AM 

Tags: git

一种解决Permission denied, please try again.错误的办法。


原本你是正常使用的,拉代码、提代码什么的都是好好的,但是突然有一天出现了这个问题。当你要拉取或提交代码的时候,一般情况下,你应该是对你电脑或git的安装文件做过什么改动之后才会出现。

网上很多帖子说,先在本地生成自己的ssh秘钥,然后在代码托管平台添加上自己的 ssh 秘钥,然后就可以了,这个办法就有手就会,根本不需要帖子来说明。

真正有问题的是,我托管代码的平台上 ssh秘钥是正常添加好了的。依然在别的进行代码操作时会出现 Permission denied, please try again. 这类的错误。 甚至说要求我先输入自己的密码,还得输入好几遍,最后还是 这个错误提示。对于这种情况,直接裂开。但是网上也有对这种问题正确的解决办法的帖子。我也就总结一下好了。

一、常规情况

常规情况就是,没有在托管平台设置好自己的ssh秘钥,这个很简单,直接在本地生成,然后填写到你使用的代码托管平台后台就行了。

二、已设置过ssh秘钥

对于已设置过 ssh秘钥的小伙伴,还出现这种问题,那就很扯。明明什么准备好了,还要出错,一时无法接受。其实会出现这样的情况一般是在你对电脑进行过操作之后,比如说你更新了你安装的git,或者你安装某个软件内置了git功能影响了原来的一些设置。导致了git无法正常工作。

简单点,说话的方式简单点。就是本地的身份信息加密方式被某操作修改了,与服务器接受或支持的加密方式不一致了,导致服务器始终无法确认用户信息,从而一直提示 Permission denied, please try again.。既然这样,我们只需要把本地的加密方式做一下调整,让服务器能够识别到我们使用的加密方式,自然也就没有问题了。

怎么调整,其实很简单,你的用户目录下通常会有.ssh 目录。进入这个目录你会看到你的 id_rsa.pub 文件,同时你应该还会看到 config 文件,就像下面这种:

file_dir

你可能发现你那儿没有config,别着急,没有的话,你就手动创建一个就好了, 它是一个文本文件,只需要在这个文件里面写下面的内容,就可以帮助你修改加密方式:

Host gitee.com
  HostkeyAlgorithms +ssh-rsa 
  PubkeyAcceptedAlgorithms +ssh-rsa

内容解读:

  • Host 就是指定某个域名使用哪种加密方式。可以填写 * 号表示所有域名。
  • HostkeyAlgorithms 用于生成每个连接密钥的密钥交换方法。
  • PubkeyAcceptedAlgorithms SSH 服务器接受的公钥算法,用于向 SSH 客户端验证自己。也就起到不用每次输入密码了。

关于这个,这里还有个更权威的解读:https://www.openssh.com/legacy.html

你可能觉得,这样一设置,不就每一个项目都生效了吗,我如果只希望我这一个项目有效, 咋办啊?其实还可以通过命令形式,让其只有当前项目生效,不需要作上述修改,直接执行下面的命令:

git config core.sshCommand 'ssh -o HostKeyAlgorithms +ssh-rss -o PubkeyAcceptedKeyTypes +ssh-rsa'

此命令未经小编验证,小伙伴们使用要小心!此命令来自:https://cloudolife.com/2021/10/30/DevOps/Git/Git-clone-with-SSH-HostkeyAlgorithms-and-PubkeyAcceptedKeyTypes-options/

Full text complete, Reproduction please indicate the source. Help you? Not as good as one:
Comment(Comments need to be logged in. You are not logged in.)
You need to log in before you can comment.

Comments (0 Comments)