jos*_*eon 58 ssh bitbucket ssh-keys
我正在努力将我的项目推到我的bitbucket上,一直在搞乱这个问题大约4天,通过无数的问题解决/页面/故障排除/教程.我不知所措,非常沮丧.我以前做过这个,但是在不同的计算机上...无论如何这里是我得到的代码/响应
~/dev/sample_app git push -u origin --all
The authenticity of host 'bitbucket.org (131.103.20.168)' can't be established.
RSA key fingerprint is 81:7b:2c:f5:6f:18:2b:7c:4b:ec:aa:46:46:74:7c:40.
Are you sure you want to continue connecting (yes/no)?
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
~/dev/sample_app
Run Code Online (Sandbox Code Playgroud)
我在Mac上运行10.8.4.
所以已经取得了一些进展,最初没有.ssh文件夹,所以我在开始时创建了那条路,没有known_hosts文件所以我跑了
ssh -T git@bitbucket.org
Run Code Online (Sandbox Code Playgroud)
我选择了yes,这创建了一个known_hosts文件,当我再次尝试推送时,我得到了:
~/dev/sample_app git push -u origin --all
Permission denied (publickey).
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
Run Code Online (Sandbox Code Playgroud)
我的.ssh文件夹是700,内部的键都是600.
cyb*_*b0k 41
您可以在〜/ .ssh/config文件中设置IdentityFile标志文件,如下所示:
Host bitbucket.org
IdentityFile ~/.ssh/id_rsa
Run Code Online (Sandbox Code Playgroud)
当你跑步
ssh git@bitbucket.org
Run Code Online (Sandbox Code Playgroud)
ssh客户端允许您选择从中读取RSA或DSA身份验证的标识(私钥)的文件.
Ron*_*bet 23
您可能正在使用ssh作为git origin url.尝试删除ssh原点
git remote rm origin
Run Code Online (Sandbox Code Playgroud)
然后使用HTTPS网址添加新来源并尝试再次推送.
git remote add origin https://git@bitbucket.org/SOMETHING/SOMETHING.git
git push -u origin master
Run Code Online (Sandbox Code Playgroud)
确保将来自bitbucket的url粘贴为origin.
小智 17
它可能会使系统管理员惊恐地退缩,但在遇到这个问题后(Windows)我放弃了SSH并回到了HTTPS.
首次将远程存储库添加到Git时,请git@bitbucket.org...使用HTTPS URL 替换SSH引用' https://<username>@bitbucket.org'.
您必须每次都输入密码,但特别是在Windows不像*nix系列那样常用的Windows下,我认为这与SSH的头痛相比有点不便.
pba*_*ski 12
在我的情况下,在新的Ubuntu 16机器上,我丢失了文件~/.ssh夹中的文件,所以有效:
~/.sshssh-keygen并命名您的文件即id_rsacat ~/.ssh/id_rsa.pub | xclip -sel clipxclip刚刚apt-get install xclip:)Add key并粘贴剪贴板中的键魔术 - 它现在有效:)
使用git config --global user.name "My Name"and
设置 git 后git config --global user.email myemail@x.com,我仍然遇到 Permission Denied, (publickey) 错误的问题。为了解决这个问题,我首先生成了一个新的 ssh 令牌
ssh-keygen
Run Code Online (Sandbox Code Playgroud)
并复制它
pbcopy < ~/.ssh/YOUR_KEY
Run Code Online (Sandbox Code Playgroud)
之后,我去 bitbucket.com 将其添加为我的设置中的新 SSH 密钥。然后,我返回到我的终端添加新密钥
ssh-add ~/.ssh/YOUR_KEY.
Run Code Online (Sandbox Code Playgroud)
我遇到的大问题是我错过了关键ssh-add [key]命令。
更可持续的解决方案是编辑.bashrc(例如vi ~/.bashrc)然后添加以下行(替换密钥名称)
ssh-add ~/.ssh/YOUR_KEY
这将在您启动shell时自动加载密钥
如果您使用 Fedora 33+ 并使用 RSA 算法。使用更安全的算法,例如 ECDSA 或 ED25519:
ssh-keygen -t ed25519 -C "your_email@example.com"
查看bitbucket 支持以获取更多详细信息
原因
由于各种安全漏洞,RSA 算法很快就在操作系统和 SSH 客户端中被弃用,其中许多技术现在完全拒绝使用该算法。
(info) 例如 - 这是 OpenSSH 关于即将弃用 ssh-rsa 算法的公告。如果您使用的操作系统或 SSH 客户端的版本禁用了此算法,则这些技术可能不再接受之前使用此算法生成的任何 SSH 密钥。
解决
为了完全解决此问题,我们的团队建议使用受支持且更安全的算法(例如 ECDSA 和 ED25519)重新生成这些已弃用的密钥
小智 5
我在Linux(Ubuntu)中也遇到了同样的问题。
我使用安装程序解决了它git:
git config --global user.name "Your Name"
git config --global user.email your.email@example.com
Run Code Online (Sandbox Code Playgroud)
使用cat和SSH密钥将公钥打印到bitbucket.org:
$ cat ~/.ssh/id_rsa.pub
Run Code Online (Sandbox Code Playgroud)
添加Bitbucket并增加存储库:
git remote add origin git@bitbucket.org:<username>/your repository name.git
git push -u origin --all
Run Code Online (Sandbox Code Playgroud)
就这样!
我在BitBucket上也遇到了类似的问题。就我而言,它只有在我发现我应该从git clone命令中删除sudo后才修复!
根据Attlassian:
你不应该使用sudo克隆时,推,或拉,因为用户级别的ssh-agent运行,而不是根本的水平。
小智 5
就我而言,发生此问题是因为 ~/.ssh 中有许多 ssh 密钥。我必须在 ~/.ssh/config 中创建一个 bitbucket.org 特定条目,如下所示:
Host bitbucket.org
Hostname bitbucket.org
IdentityFile <location-of-.ssh-directory>/bb-rsa
IdentitiesOnly=yes
Run Code Online (Sandbox Code Playgroud)
我的猜测是,由于我们在克隆时没有指定密钥,因此 ssh 会尝试 ~/.ssh 中的所有密钥,bitbucket 会将其视为黑客尝试并拒绝我们的存储库克隆尝试。
| 归档时间: |
|
| 查看次数: |
53482 次 |
| 最近记录: |