ChatGPT解决这个技术问题 Extra ChatGPT

Git:使用 Git 时如何解决 Permission denied (publickey) 错误?

我在 Mac Snow Leopard 上,并且刚刚安装了 git

我刚试过

git clone git@thechaw.com:cakebook.git

但这给了我这个错误:

Initialized empty Git repository in `/Users/username/Documents/cakebook/.git/`
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

我错过了什么?
我也尝试过没有密码但仍然出现相同错误的 ssh-keygen

您是否尝试上传通过 ssh-keygen 生成的公钥?
我的问题是我尝试从 sudo 克隆 - 这是另一个具有另一个公钥的用户。
同样的错误。我之前通过 github 创建了一个公钥,然后使用 ssh-keygen 实用程序生成了另一个密钥对。删除 github 上个人设置中的旧公钥并将我的 ssh 生成的 id_rsa.pub 密钥添加到 SSH 和 GPG 密钥修复了克隆权限问题。
如果您正在运行 bash screen 并且已经在每个可用网站上完成了所有操作,那么您很有可能已经从创建 screen 会话的会话中注销。一个快速的解决方法是重新启动屏幕会话:请参阅 superuser.com/q/180148
文档中有一个页面提供了一些指导 - docs.github.com/en/authentication/troubleshooting-ssh/…

R
Rufinus

如果用户之前没有生成 ssh 公钥/私钥对

此信息正在 TheChaw 上运行,但可以应用于支持 SSH 公钥身份验证的所有其他 git 存储库。 (例如,参见 [gitolite][1]、gitlab 或 github。)

首先设置您自己的公钥/私钥对集。这可以使用 DSA 或 RSA,因此基本上您设置的任何密钥都可以使用。在大多数系统上,您可以使用 ssh-keygen。

首先,您需要 cd 进入您的 .ssh 目录。打开终端并运行: cd ~/.ssh && ssh-keygen 接下来,您需要将其复制到剪贴板。在 OS X 上运行:cat id_rsa.pub | pbcopy 在 Linux 上运行:cat id_rsa.pub | xclip 在 Windows 上(通过 Cygwin/Git Bash)运行:cat id_rsa.pub |在 Windows (Powershell) 上运行:Get-Content id_rsa.pub | Set-Clipboard (Thx to @orion elenzil) 通过网站将您的密钥添加到您的帐户。最后设置你的 .gitconfig。 git config --global user.name "bob" git config --global user.email bob@... (不要忘记重新启动命令行以确保重新加载配置)就是这样你应该很好克隆和结帐。

如需更多信息,请访问 https://help.github.com/articles/generating-ssh-keys(感谢 @Lee Whitney)[1]:https://github.com/sitaramc/gitolite

-

如果用户之前已经生成了一个 ssh 公钥/私钥对

检查您的 github 或 gitlab 帐户设置上已授权哪个密钥

确定必须从本地计算机关联哪个对应的私钥

eval $(ssh-agent -s)

定义键的位置

ssh-add ~/.ssh/id_rsa


好的。这实际上不是 git,而是 ssh 同步问题。我对 Assembla 也有同样的看法,你的链接帮助我解决了这个问题。谢谢 !
我遇到了keygen的问题。它对全局环境变量中的电子邮件地址很敏感。如果您遇到此问题,您需要在第一步中为您的 github 帐户指定电子邮件地址:ssh-keygen -t rsa -C "your_email@youremail.com"
如果这仍然不起作用,您需要ssh-add ~/.ssh/id_rsa
在 Linux 上使用 xclip 进行复制只能通过执行此处列出的以下 xclip -sel clip < ~/.ssh/id_rsa.pub 来工作:help.github.com/articles/generating-ssh-keys
如果您使用的是 PowerShell,则“复制到剪贴板”步骤可以是 cat id_rsa.pub | Set-Clipboard,或者更强大的是 Get-Content id_rsa.pub | Set-Clipboard
s
stevek-pro

更广泛的故障排除甚至自动修复可以通过以下方式完成:

ssh -vT git@github.com

或者,根据以下评论,我们可以发出:

ssh -vT git@gitlab.com

或者用您的组织正在运行的任何 Git 实例替换 gitlab/github。

来源:https://help.github.com/articles/error-permission-denied-publickey/


我的问题与我的服务器使用不同的密钥有关。使用上述命令确定问题后,我在配置文件中修复了 identifyFile 并且它有效。
显示 github 尝试使用哪个密钥进行身份验证。 v 有帮助
这不能解决任何问题。我仍然收到 OP 问题中的错误。
该命令可以帮助您解决问题,它不是一个神奇的为我修复这个开关。
我不能说这解决了任何问题,但它是一个非常有趣的命令,并且也适用于 GitHub Enterprise。
k
kavinyao

当您访问 SSH URL(读/写)而不是 Git 只读 URL 但您没有对该存储库的写访问权时,可能会发生此错误。

有时您只想克隆自己的存储库,例如部署到服务器。在这种情况下,您实际上只需要只读访问权限。但由于这是您自己的存储库,如果您愿意,GitHub 可能会显示 SSH URL。在这种情况下,如果您的远程主机的公钥不在您的 GitHub SSH 密钥中,您的访问将被拒绝,这是预期的情况。

一个等效的情况是,当您尝试使用 SSH URL 克隆您没有写入权限的其他人的存储库时。

总之,如果您的意图是仅克隆一个存储库,请使用 HTTPS URL (https://github.com/{user_name}/{project_name}.git) 而不是 SSH URL (git@github.com:{user_name}/{project_name}.git),这样可以避免(不必要的)公钥验证。

更新:GitHub 现在将 HTTPS 显示为默认协议,这一举措可能会减少 SSH URL 的可能滥用。


对于 https://github.com git url,它仍然显示 SSL certificate problem: self signed certificate in certificate chaingit -c http.sslVerify=false clone ... 似乎是一个危险的举动。不过,Chrome 并没有给出任何 ssl 警告。想法?
@uosɐſ 抱歉,我从来没有遇到过这个问题。也许要做的第一件事是在不同的机器上尝试相同的命令,看看问题是否仍然存在。
这也为我做了。谢谢。为了将我的 git 存储库克隆到我的共享主机帐户(1and1),我必须使用 git clone https://github.com/MyUserName/MyRepo.git 只需单击 Github 页面右侧的存储库 URL 下方的文本链接,其中显示“您可以使用HTTPS、SSH 或 Subversion。”。 (单击 HTTPS 获取链接,而不是默认的 SSH。)
我有这个完全相同的问题;我可以(写入)使用 SSH 密钥访问面向公众的存储库,但需要只读访问权限才能克隆 LFS 对象。用 HTTPS URL 替换 ssh 地址解决了我的问题。
我不明白.. 为什么 SSL URL 需要读取和写入权限才能克隆?
j
jarora

github 帮助 link 帮助我解决了这个问题。看起来 ssh 密钥未添加到 ssh-agent。这就是我最终做的。

命令 1:

确保已启用 ssh-agent。该命令在后台启动 ssh-agent:

eval "$(ssh-agent -s)"

命令 2:

将 SSH 密钥添加到 ssh-agent:

ssh-add ~/.ssh/id_rsa

升级到 OSx El Capitan 到 Sierra 后,这对我有用。
这在 Raspberry Pi 上对我有用,其中 ssh-add 显然有一个“-k”标志而不是“-K”。但是一旦我添加了我的部署密钥,我就能够使用它的 SSH 链接成功地克隆我的 repo。
这是真正的解决方案,它在 4 年后(在 Jan 11 ' 19 上)被复制并粘贴到已接受的答案中,所以这值得我们点赞!
stackoverflow.com/questions/17846529/…。看看你是否可以在这里找到一些东西,或者只是重新启动你的系统,看看它是否有效。
“将 SSH 密钥添加到 ssh-agent”解决了我的问题!
P
Promise Preston

得到相同的错误报告。

修复了使用 HTTPS 而不是 SSH 协议的问题。因为我不想为测试 PC 设置“SSH 密钥”。

克隆时将 URL 更改为 HTTPS:

git clone https://github.com/USERNAME/REPOSITORY.git

我的问题有点不同:在将现有本地存储库添加到远程时,我将 URL 设置为 SSH,方法是:

git remote add origin ssh://github.com/USERNAME/REPOSITORY.git

要修复它,请将 URL 重置为 HTTPS:

git remote set-url origin https://github.com/USERNAME/REPOSITORY.git

顺便说一句,您可以使用以下命令检查您的 URL:

git remote -v
origin  https://github.com/USERNAME/REPOSITORY.git (fetch)
origin  https://github.com/USERNAME/REPOSITORY.git (push)

希望这会帮助像我这样的人。 :D


我是这样做的。在我想推送一个修改后的提交之前一切都好……但它失败了。我被卡住了,因为不能使用新的提交,因为它可以防止此类活动。
谢谢!不知道为什么我的 repo 突然被配置为 SSH,我只使用过 HTTPS,所以我很高兴你提出了这个修复。
c
crimbo

Windows 上的另一种可能性,这些答案中的任何一个都没有涵盖,并且 git 或 github 文档中没有涵盖故障排除:

git 使用的 openssh 可执行文件可能与您想象的不同。

我在尝试从 github 和 ssh.dev.azure.com 克隆或拉取时收到 Permission denied (public key) 错误,我已按照所有说明操作并验证了我的 SSH 密钥已正确设置(从 SSH 的角度来看)使用 {2 } 和 ssh -vT git@ssh.dev.azure.com。并且仍然收到这些错误:

git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.

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

我最终发现问题在于 Git for Windows 和 Windows 都有自己的 openssh 版本。这在此处记录:https://github.com/desktop/desktop/issues/5641

我依靠 Windows ssh-agent 服务来存储我的 ssh 密钥密码,所以 git(带有单独版本的 openssh)无法读取我的私钥。我认为使用此错误消息是一个错误 - 它具有误导性。

解决方法是:

git config --global core.sshCommand "'C:\Windows\System32\OpenSSH\ssh.exe'"

或者在你的 ~/.gitconfig 中:

[core]
    sshCommand = 'C:\\Windows\\System32\\OpenSSH\\ssh.exe'

也许这很快会在 git for Windows 中得到修复,但这是我第二次在这个问题上浪费时间。


这也为我解决了。奇怪的是,当我使用包管理器控制台时,我的 Visual Studio 解决方案只有一个,git pull 我会收到“Permission Denied (publickey)”。但是,在其他 Visual Studio 解决方案(我的项目)上,我不会有任何问题......这个解决方案是有道理的,这个问题是如何产生于我的一个项目的仍然有点神秘。
或者,如果您并行使用 Cygwin git 并希望按原样保留 ~/.gitconfig,则可以修改 C:\Program Files\Git\etc\gitconfig
这个问题在win11上仍然存在(至少从win10升级后)。感谢您的解决方案!文档无能为力
在安装过程中选择“使用外部 OpenSSH”而不是默认选项“使用捆绑的 OpenSSH”。
再次感谢您!我在更新到 Git-2.35.1.2(来自 Git-2.31.1)时遇到了同样的问题,这解决了它。
C
CBowe14

我正在努力解决与我所做的相同的问题,并且我能够克隆存储库。我在 Mac 上遵循了这个程序。

第一步:检查我们是否已经拥有公共 SSH 密钥。

打开终端。输入 ls -al ~/.ssh 以查看是否存在现有的 SSH 密钥:

检查目录列表以查看您是否已经拥有公共 SSH 密钥。默认公共是以下 d_dsa.pub、id_ecdsa.pub、id_ed25519.pub、id_rsa.pub 之一。

如果找不到,请转到第 2 步,否则请按照第 3 步

第 2 步:生成公共 SSH 密钥

打开终端。使用您用于 github 的有效电子邮件地址输入以下命令 ssh-keygen -t rsa -b 4096 -C "your_email@example.com" 您将在终端中看到以下内容 生成公钥/私钥 rsa 密钥对。当提示“输入要保存密钥的文件”时,按 Enter。这接受默认文件位置。当它提示输入保存密钥的文件(/Users/you/.ssh/id_rsa)时: [按回车] 再次按回车。在提示“键入安全密码。输入密码(没有密码时为空):[输入密码]”如果您不想再次输入相同的密码,请按回车:[再次输入密码]再次按回车

这将生成 id_rsa.pub

第 3 步:将 SSH 密钥添加到 ssh-agent

在终端输入 eval "$(ssh-agent -s)" 将 SSH 密钥添加到 ssh-agent。如果您使用现有的 SSH 密钥而不是生成新的 SSH 密钥,则需要将命令中的 id_rsa 替换为现有私钥文件的名称。输入此命令 $ ssh-add -K ~/.ssh/id_rsa 现在复制 SSH 密钥并将其添加到您的 github 帐户中 在终端输入此命令,并使用您的 ssh 文件名 pbcopy < ~/.ssh/id_rsa.pub 这将将文件复制到剪贴板现在打开您的 github 帐户转到设置 > SSH 和 GPG 密钥 > 新 SSH 密钥 输入标题并从剪贴板粘贴密钥并保存。瞧,你完成了。


Windows 用户通过以下方式复制:cat ~/.ssh/id_rsa.pub |夹子
最后在这里和那里阅读了一个小时后,一步一步的解决方案......效果很好。请记住在步骤中添加您的 github 密码作为密码,否则每次都必须手动添加
很好的答案。我还要补充一点,获取有关如何更改远程 git 详细信息的信息对我很有帮助——有关详细信息,请参阅此链接:stackoverflow.com/a/63830575/1818235
谢谢!这对我来说效果很好,除了:代替 ssh-add -K ~/.ssh/id_rsa 我运行了 ssh-add ~/.ssh/id_rsa “-K”选项提示输入我没有的 PIN。
W
Wouter Schoofs

这对我有用:

ssh-add ~/.ssh/id_rsa

无法打开与您的身份验证代理的连接。
E
Ezra Siton

视觉指南(Windows)

1 of 2. Git 批处理端

https://i.stack.imgur.com/gcibV.png

1.2.粘贴下面的文本(更改为您的 GitHub 帐户电子邮件)

$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"

https://i.stack.imgur.com/PmaB0.png

https://i.stack.imgur.com/SrJtp.png

1.4. 点击 Enter 两次(或设置 SSH 密钥密码 - Gitbub passphrases docs

> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]

1.5。密钥生成:

您的身份已保存在 /c/Users/user/.ssh/id_rsa...

1.6.将 SSH 密钥复制到剪贴板。

$ clip < ~/.ssh/id_rsa.pub

2 of 2. Github 网站用户端

https://i.stack.imgur.com/1XG4T.png

https://i.stack.imgur.com/am12C.png

https://i.stack.imgur.com/8QQtz.png

完毕 :)

https://i.stack.imgur.com/uXfJa.png

如果有人不想使用 SSH use HTTPS

https://i.stack.imgur.com/aQ1kH.png

Github 文档: https://docs.github.com/en/github/authenticating-to-github/connecting-to-github-with-ssh


M
Mason Bryant

请注意(至少对于某些项目),您必须拥有一个带有 ssh 密钥的 github 帐户。

查看您的身份验证代理中列出的密钥 (ssh-add -l)
(如果您没有看到任何密钥,请使用 ssh-add /path/to/ 添加现有密钥之一your/key(例如:ssh-add ~/.ssh/id_rsa))
(如果您没有任何密钥,请先创建一个。请参阅:http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html 或只是 google ssh -密钥生成器)

要验证您是否拥有与您的 github 帐户关联的密钥:

转到:https://github.com/settings/ssh

您应该看到至少一个键的哈希键与您在一分钟前键入 ssh-add -l 时看到的哈希键相匹配。

如果没有,请添加一个,然后重试。


如果您被要求使用 SSH 密钥(网址看起来像 git@github.company.com 而不是 https://github.company.com)但您的 Github 设置没有 SSH 密钥,您就会知道您遇到了这个问题。 Github 在 docs.github.com/en/github/authenticating-to-github/… 提供分步说明。
w
wtj

如果您的问题最近(2021 年下半年)突然出现,则可能是由不兼容的哈希算法引起的。

截至这篇文章(2021 年 10 月),适用于 windows 的 Git 的最新版本是 2.33.1 (release note),它采用了最新的 OpenSSH 8.8p1 (release note),反过来又弃用了 SHA- 1。同时,如果您的远程 Git 存储库仍然坚持使用 SHA-1,您将无法通过身份验证。

要查看您是否可能陷入这种情况,请通过以下方式检查您的软件版本:

ssh -V
git --version

然后您应该检查 OpenSSH 8.8/8.8p release note 的“可能不兼容的更改”部分。

TL;博士

解决方案 1: 通过将其添加到您的 ~/.ssh/config 文件再次启用 SHA-1:

Host <remote>
    HostkeyAlgorithms +ssh-rsa
    PubkeyAcceptedAlgorithms +ssh-rsa

请记住将 <remote> 替换为远程存储库的主机名。

解决方案 2:使用 ECDSA 或 Ed25519 而不是 RSA 重新生成您的密钥对。例如:

ssh-keygen -t ecdsa -C <comment>

请记住将 <comment> 替换为您自己的助记词。然后,将生成的公钥上传到您的远程存储库。

仅供参考,我在访问 Gitee.com 时遇到此提示消息,该网站在其服务器上使用 golang.org/x/crypto/ssh 并已发布有关此问题的页面 here(普通话)。

git@gitee.com: Permission denied (publickey).

我使用了解决方案 2。现在我可以访问远程仓库了。非常感谢。该解决方案适用于配置为 Git ssh 而不是嵌入式的 Git、TrotoiseGit 和 SourceTree。
A
Amir

我遇到了同样的问题,因为我认为 SSH 和 HTTPS 之间的区别是

https://github.com/USERNAME/REPOSITORY.git

ssh://github.com/USERNAME/REPOSITORY.git

所以我从 HTTPS 更改为 SSH 只需将 https:// 更改为 ssh:// 网址末尾的任何内容都没有更改。

但事实是:

https://github.com/USERNAME/REPOSITORY.git

git@github.com:USERNAME/REPOSITORY.git

这意味着我将 ssh://github.com/USERNAME/REPOSITORY.git 更改为 git@github.com:USERNAME/REPOSITORY.git 它有效。

愚蠢的错误,但希望对某人有所帮助!


是的,我将 ssh://github.com/USERNAME/REPOSITORY.git 更改为 git@github.com:USERNAME/REPOSITORY.git 它有效。
我明白了,因为我只使用 ssh 而不是 https,所以我只是将 'https://' 更改为 'ssh://`,然后我得到了错误。所以将 'ssh://git/../` 更改为 'git@../" :) 编辑了我的答案。
这个对我有用。非常感谢!我尝试了 https,然后尝试了 ssh,但它仍然拒绝我的访问,直到使用“git clone git@github.com:/myusername/myproject.git”。
S
Satishakumar Awati

这些是我在 Windows 10 中遵循的步骤

打开 Git Bash。生成公钥: ssh-keygen -t rsa -b 4096 -C "youremailaddress@xyz.com" 将生成的密钥复制到剪贴板(类似 CTRL+C) clip < ~/.ssh/id_rsa.pub 浏览器,转到 Github => 配置文件=> 设置 => SSH 和 GPG 密钥 => 添加密钥 提供密钥名称并粘贴剪贴板 (CTRL+V)。最后,测试你的连接(Git bash) ssh -T git@github.com

https://i.stack.imgur.com/dpYYk.png

谢谢!


现场回答!!!完美运行。
R
Richipal

我的情况略有不同,我登录到远程服务器并在服务器上使用 git,当我运行任何 git 命令时,我得到了相同的消息

   Permission denied (publickey).
   fatal: The remote end hung up unexpectedly

我修复它的方法是在我的 Mac 上更改文件 /etc/ssh_config。从

ForwardAgent no 

ForwardAgent yes

尝试从 VirtualBox VM 从 github 获取 gem 时发生错误。更新了我的 Vagrantfile 以使用 config.ssh.forward_agent = true,重新启动 VM,现在它可以工作了。
根据以下情况,在安全性方面可能不是最佳选择:heipei.github.io/2015/02/26/…
G
Gopala raja naika

如果没有解决,请试试这个

生成个人访问令牌(设置 -> 开发人员设置 -> 个人访问令牌 -> 生成新令牌) git remote set-url origin https://@github.com/USERNAME/REPOSITORY.git

注意:如果出现密码弹出窗口,请尝试仅输入令牌(尝试两次)


K
Kandarp

我不得不将我的 ssh 密钥复制到根文件夹。运行 Ubuntu 18.04 的谷歌云计算引擎

sudo cp ~/.ssh/* /root/.ssh/

K
KeshavDulal

使用 ghGithub's official CLI 的解决方案

gh安装

brew install gh

gh 通过 cli 登录或身份验证

gh auth login

回购克隆

gh repo clone <username or orgname>/<repo-name>

示例:gh repo clone keshavdulal/sample-repo

咆哮:当 git clone 突然决定不再工作并且我没有耐心或脑力从头开始重新学习 ssh/公钥/密码学只是为了克隆我已经拥有的该死的 repo 时,我也很生气进入。也很惊讶没有人在答案中提到 gh


F
Fabian Lauer

伙计们,这对我来说是这样的:

打开终端并转到用户 [参见附图] 打开 .ssh 文件夹并确保它没有任何文件,如 id_rsa 或 id_rsa.pub 否则有时它不会正确重写文件 git --version [检查 git 安装和版本] git config --global user.email "your email id" git config --global user.name "your name" git config --list [确保您已设置您的姓名和电子邮件] cd ~/.ssh ssh-keygen,它提示保存文件,允许它 cat ~/.ssh/id_rsa.pub [访问您的公钥并将密钥复制到 gerrit 设置]

注意:您不应该在 Git 中使用 sudo 命令。如果您有充分的理由必须使用 sudo,那么请确保您在每个命令中都使用它(此时使用 su 以 root 身份获取 shell 可能会更好)。如果您在没有 sudo 的情况下生成 SSH 密钥,然后尝试使用类似 sudo git push 的命令,您将不会使用生成的相同密钥

https://i.stack.imgur.com/ZVElb.png

https://i.stack.imgur.com/eO8bK.png


非常感谢 - git repo 中的名称更改为在 repo 设置中部署密钥
J
Jason

在 Windows 上,确保您的所有应用都同意 HOME。 Msys 出人意料地不会为你做这件事。我不得不设置一个环境变量,因为 ssh 和 git 似乎无法就我的 .ssh 目录的位置达成一致。


A
Andrew

您在 corporate environment 中吗?您的系统变量最近是否可能发生了变化?根据 this SO answer,ssh 密钥位于 %HOMEDRIVE%%HOMEPATH%\.ssh\id_rsa.pub。因此,如果 %HOMEDRIVE% 最近发生了变化,git 不知道在哪里查找您的密钥,因此也不知道所有的身份验证内容。

尝试运行 ssh -vT git@github.com。记下 identity file 的位置。对我来说,这 不是 指向我的正常 \Users\MyLogin,而是指向网络驱动器,因为在网络级别推送了对环境变量的更改。

解决方案?因为我的新 %HOMEDRIVE% 与我的本地文件具有相同的权限,所以我只是将我的 .ssh 文件夹移到那里,然后就结束了。


这对我有用。昨天我的 ssh 密钥工作,但今天我的系统的一些设置被改变了。我只是再次添加 shh 键,它现在可以工作了。
V
Vizllx

最简单的方法之一

去终端-

  git push <Git Remote path> --all

d
duhaime

我遇到了这个错误,因为我需要给我当前的工作目录权限 700:

chmod -R 700 /home/ec2-user/

H
Hrvoje

始终检查 GitHub 上的 SSH 密钥生成过程,而不是一些过时的博客

https://docs.github.com/en/authentication/connecting-to-github-with-ssh/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent

在那里您可以看到密钥是通过以下方式生成的:

ssh-keygen -t ed25519 -C "your_email@example.com"

所以算法是 ed25519 而不是 rsa 或其他任何东西。


我使用了一些没有成功的旧 RSA 密钥,因为它必须是 ed25519,如您所说。非常感谢这个提示。您的命令成功了,不使用密码。
g
gMale

基本的 GIT 指令没有提到 SSH 密钥的东西。在上面的一些链接之后,我找到了一个 git 帮助页面,它逐步解释了如何为各种操作系统执行此操作(该链接将检测您的操作系统并相应地重定向):

http://help.github.com/set-up-git-redirect/

它介绍了 GITHub 所需的所有内容,并提供了详细的解释,例如“为什么在创建 RSA 密钥时添加密码短语”。我想我会发布它,以防它帮助别人......


N
Nizar B.

当您尝试使用不同的用户名推送到存储库时,最简单的解决方案是:

 git remote set-url origin https://USERNAME@github.com/USERNAME/PROJECTNAME.git

C
Community

除了 Rufinus 的回复之外,在 Windows 中将 ssh 密钥复制到剪贴板的快捷方式是:

类型 id_rsa.pub |夹子

参考:

打印到标准输出

将命令行输出复制到剪贴板


k
keios

如果您有多个密钥,您可能需要执行 ssh-add private-keyfile


[root@li566-238 hanjiyun]# ssh-add private-keyfile private-keyfile: 没有那个文件或目录
k
karthik339

它非常简单。键入以下命令

ssh-keygen -t rsa -b 4096 -C "youremailid@yourdomain.com"

生成 SSH 密钥。打开文件并复制内容。进入 GitHub 设置页面,点击 SSH 密钥。单击添加新的 SSH 密钥,然后将内容粘贴到此处。就是这样:) 你不应该再看到这个问题了。


T
TiiGRUS

我帮助了以下内容:

打开终端(Git Bash)删除目录 .ssh 中的所有文件或重命名并创建新的 .ssh 文件夹。按照说明的步骤进行操作: 生成新的 SSH 密钥 将 SSH 密钥添加到 ssh-agent

系统:Windows 10。


A
Anupam Chaplot

我删除了 node_modules/package-lock.json 和 yarn.lock 文件。再次运行npm i。这为我解决了这个问题。