密码错误 3 次:git 不再要求输入密码

2024-01-18

我想推送远程 git 存储库。我输入了错误的密码三次。我创建了一个新的 ssh 密钥并在存储库服务器上注册了新的公钥。 但 ssh 代理不会提示输入密码。它只是不断地告诉我:

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

请确保您拥有正确的访问权限和存储库 存在。

ubuntu下如何解决这个问题?

Edit

正如建议的那样,我尝试了ssh-add

sadik@sadix:~$ cd .ssh/
sadik@sadix:~/.ssh$ ls
config  github_rsa  github_rsa.pub  id_rsa  id_rsa.pub  keys.zip  known_hosts
sadik@sadix:~/.ssh$ ssh-add 
Enter passphrase for /home/sadik/.ssh/id_rsa: 
Identity added: /home/sadik/.ssh/id_rsa (/home/sadik/.ssh/id_rsa)
sadik@sadix:~/.ssh$ 
sadik@sadix:~/.ssh$ cd
sadik@sadix:~$ cd some/git-repo/
sadik@sadix:~/some/git-repo/$ git push -u bitbucket master
Permission denied (publickey).
fatal: Could not read from remote repository.

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

我应该补充一点,这个 git 存储库是从 github 克隆的(不属于我)。我想将它推送到我的 bitbucket 上的私人存储库上。 我不知道这是否会导致权限问题,但我的第一个问题是 ssh 不提示输入密码。即使重新启动或注销后也是如此。

Edit

正如 Jakuje 善意地建议我输入命令GIT_SSH_COMMAND="ssh -vvv" git push -u bitbucket master获取客户端日志。这是输出的结尾:

debug3: preferred gssapi-keyex,gssapi-with-mic,publickey,keyboard-interactive,password
debug3: authmethod_lookup publickey
debug3: remaining preferred: keyboard-interactive,password
debug3: authmethod_is_enabled publickey
debug1: Next authentication method: publickey
debug1: Offering RSA public key: /home/sadik/.ssh/id_rsa
debug3: send_pubkey_test
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
debug1: Authentications that can continue: publickey
debug1: Trying private key: /home/sadik/.ssh/id_dsa
debug3: no such identity: /home/sadik/.ssh/id_dsa: No such file or directory
debug1: Trying private key: /home/sadik/.ssh/id_ecdsa
debug3: no such identity: /home/sadik/.ssh/id_ecdsa: No such file or directory
debug1: Trying private key: /home/sadik/.ssh/id_ed25519
debug3: no such identity: /home/sadik/.ssh/id_ed25519: No such file or directory
debug2: we did not send a packet, disable method
debug1: No more authentication methods to try.
Permission denied (publickey).
fatal: Could not read from remote repository.

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

无论出于何种原因,它都会搜索公钥id_dsa,所以我复制了id_rsa to id_dsa并再次尝试。 现在它提示输入密码!但是......当我输入错误的密码时,它会再次询问我。当我输入正确的时候,它说权限被拒绝。

$ git push -u bitbucket master
Enter passphrase for key '/home/sadik/.ssh/id_dsa': 
Enter passphrase for key '/home/sadik/.ssh/id_dsa': 
Enter passphrase for key '/home/sadik/.ssh/id_dsa': 
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.
  1. 权限有什么问题吗?
  2. 为什么要寻找id_dsa代替id_rsa?

事情看起来很复杂,可能值得从头开始:

  1. 删除里面所有的钥匙~/.ssh您不需要的(如果您想保留某些密钥,请考虑暂时将它们移至其他目录)。
  2. If 〜/ .ssh /配置存在,检查它是否有可疑行。
  3. 如果您正在使用ssh代理,使用删除所有键ssh-add -D。检查是否没有使用密钥ssh-add -l。如果您看到任何输出,则表明您正在遭受痛苦this bug https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=472477。注销、登录并验证ssh-add -l不产生输出。
  4. Run ls -al ~/.ssh并检查那里没有钥匙。
  5. 使用创建新密钥ssh-keygen。当要求输出文件使用默认值时按 Enter 键,然后输入密码两次。
  6. Run ls -al ~/.ssh并检查一下id_rsa and id_rsa.pub exist.
  7. 从 Bitbucket 中删除现有密钥。
  8. 添加以下内容〜/.ssh/id_rsa.pub到比特桶。
  9. 使用测试连接ssh -T [email protected] /cdn-cgi/l/email-protection。如果失败,请发布输出ssh -vvv [email protected] /cdn-cgi/l/email-protection.
  10. 检查 git 命令是否有效。

为什么要寻找id_dsa代替id_rsa?

SSH 会尝试多个密钥,直到找到一个有效的密钥。它尝试过id_rsa,密钥被拒绝,所以继续尝试id_dsa.

归功于@Leon https://stackoverflow.com/a/44478009/提及ssh-add.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

密码错误 3 次:git 不再要求输入密码 的相关文章

  • Git:以新名称签出旧版本的目录

    如何以新名称查看目录的先前版本 我一直都有一个目录foo在我的仓库中 我想创建一个目录foo old在我当前的工作树中 其内容是HEAD 2 foo 我同时需要两个版本 以确保它们给出相同的结果 测试这需要相当多的代码 并且需要同时提供两个
  • 如何使用 git --word-diff 显示空格差异?

    为了说明问题 参见diff https github com nim lang Nim commit 47c7fd037ed28b7de3d120b003d059d30e18f128 diff split diff 8af935b2312d
  • 如何恢复已删除的远程分支

    我们的远程主分支被删除 我有主存储库的本地副本 但它已经过时了 我可以通过将最后一个已知的提交哈希值插入 URL 来查看 github 中的分支 但未能成功恢复它 我尝试了几个步骤来恢复它 git reset hard 16deddc05c
  • 如何在 Google Compute Engine 上创建的两个实例之间进行 ssh?

    我在 Google Compute Engine 上创建了两个实例 Instance A hostname robot a ip addr 10 111 0 11 Instance B hostname robot b ip addr 10
  • 创建多个 git 分支的联合分支

    我希望能够在现有分支之上分层其他分支 并独立修改这些分支 这很有用 例如 允许将各个子项目的二进制文件统一到同一个项目中bin目录 一般来说 给定的文件仅存在于一层中 理想情况下 我想我会使用 unionfs 来完成此任务 但它必须以某种方
  • git am 和 git apply 有什么区别?

    Both git am https git scm com docs git am and git apply https git scm com docs git apply可用于应用补丁 看起来git am自动提交 而git apply
  • Git撤销本地分支删除

    我刚刚删除了错误的分支 并进行了一些我需要的实验性更改git branch D branchName 如何恢复分支 您可以使用git reflog http git scm com docs git reflog查找分支最后一次提交的 SH
  • 有什么方法可以从提交的消息中获取提交的 SHA 值吗?

    当做一个git tag 我并不总是擅长记住 HEAD 6 例如 是包含的还是排他的 鉴于我的大多数提交都以问题号为前缀 我想知道是否有一些神奇的命令可以从其消息的一部分中搜索提交 SHA 我知道这很容易做到git log并从那里开始工作 但
  • 如何使用 git 找到一个分支中但不在另一个分支中的所有提交?

    我有两个分行master and live Master是发展 分支并包含尚未准备好进入的提交live 如果在master需要进入的分支live树枝然后他们被樱桃采摘master to live 有时会做出承诺live分支然后是 樱桃摘入m
  • 如何检查主机是否在您的known_host ssh中

    我的脚本中使用以下命令 将主机添加到 ssh 中的已知主机 VAR2 expect c spawn ssh o StrictHostKeyChecking no REMOTE HOST USER REMOTE HOST IP expect
  • 是否可以使用“git gc”来打包引用日志对象?

    正如答案所暗示的https stackoverflow com a 32025729 https stackoverflow com a 32025729我已经配置了远程裸仓库 git config gc pruneExpire never
  • Git - 使用多个遥控器来跟踪同一分支和服务器

    我正在尝试在我与其他人共享的远程服务器上设置 Git 存储库 唯一的问题是 它位于我的局域网中 而我并不总是属于其中 我希望能够有 2 个遥控器使用同一个分支 全部同步 几乎像符号链接 但带有配置 更困难的是 如果我尝试在 LAN 中使用外
  • gitignore 匹配子目录中带有前缀和后缀的文件

    我喜欢只跟踪以 es 开头并以 h 或 m 结尾的文件 所以我尝试了这个 exlude all except es h es m and exlude all except es h es m 但对于子目录中的文件都不起作用 当你忽略一切
  • git checkout 后,Git 丢失了本地提交文件

    我从另一个分支切换 这样我就可以进行推送 在进行结账时 文件在我的编辑器中打开 这可能导致权限被拒绝错误 git 丢失了我的所有文件吗 我不知道如何让他们回来 这就是我所做的 丢失的文件有js Messages目录templates Mes
  • “git merge”和“git rebase”有什么区别?

    有什么区别git merge and git rebase 假设最初有 3 次提交 A B C 然后开发人员 Dan 创建了提交D 开发者 Ed 创建了提交E 显然 这一冲突应该以某种方式得到解决 为此 有两种方法 MERGE 两者都提交D
  • 从 `git commit` 调用时 Vim 使用非标准配置?

    我注意到每当我编写提交消息时 git 似乎都会使用不同的 vim 设置 我有git svn安装 Macports 我已经检查过 MYVIMRC变量 它被设置为正确的文件 尽管如此 每次我提交消息时 我都会受到每行 80 个字符的限制 区分大
  • 在 git svn fetch 期间解压树对象时发生致命错误

    当运行 get svn fetch 从上游 svn 存储库提取最新的新分支时 我收到此错误 git svn fetch fatal failed to unpack tree object 5ecb324e8b8fcb918acb253f3
  • 无法在 AWS EB CLI 中设置 SSH [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 当我尝试在 Elastic Beanstalk CLI 上设置 SSH 密钥时 出现以下错误 ERROR SSH is not insta
  • git GUI 中的 Git add (ctrl+A) 和 Stage to Commit (ctrl+T) 有什么区别?

    If git add CTRL A starts tracking changes AND stages changes to already tracked files why should I ever use Stage to Com
  • 无法卷曲 git 标签

    我想通过命令行卷曲 git 标签 curl O http someurl 但是当我尝试解压文件时它被破坏了 有谁知道问题是什么 You can curl来自 GitHub 等 git 存储库托管服务的 git 标签 因为它有专用压缩包服务

随机推荐