我用的是Mac雪豹,刚刚安装了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没有密码,但仍然错误。
同样的错误报告。
修正了使用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
在MAC中,进入终端
1)使用命令- cd ~进入主目录
2) cd .ssh && ssh-keygen(默认情况下,双击输入/返回键)
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/username/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/usernmae/.ssh/id_rsa.
3)之后,做“ls”。您将找到id_rsa。酒吧文件。
4)复制id_rsa. conf文件中的内容。Pub文件(使用cat命令读取- cat id_rsa.pub)
5)导航到BitBucket或任何支持SSH密钥的版本工具。使用“添加键选项”粘贴内容
就是这样。试着现在就做出承诺和努力。
请注意(至少对于某些项目),您必须拥有一个带有ssh密钥的github帐户。
查看身份验证代理中列出的密钥(ssh-add -l)
(如果你没有看到任何,用ssh-add /path/到/your/key添加一个你现有的密钥(例如:ssh-add ~/.ssh/id_rsa))
(如果你没有任何密钥,首先创建一个。参见:http://rcsg-gsir.imsb-dsgi.nrc-cnrc.gc.ca/documents/internet/node31.html或谷歌ssh-keygen)
要验证您有一个与您的github帐户相关联的密钥:
访问:https://github.com/settings/ssh
您应该至少看到一个键的哈希键与您刚才键入ssh-add -l时看到的某个哈希键相匹配。
如果没有,添加一个,然后再试一次。
如果用户未生成之前设置的ssh公私钥对
此信息在聊天上工作,但可以应用于所有其他支持SSH pubkey身份验证的git存储库。(参见[gitolite][1], gitlab或github。)
首先设置您自己的公钥/私钥对集。这
可以使用DSA或RSA,所以基本上你设置的任何密钥都可以工作。
在大多数系统上,您可以使用ssh-keygen。
First you'll want to cd into your .ssh directory. Open up the terminal and run:
cd ~/.ssh && ssh-keygen
Next you need to copy this to your clipboard.
On OS X run: cat id_rsa.pub | pbcopy
On Linux run: cat id_rsa.pub | xclip
On Windows (via Cygwin/Git Bash) run: cat id_rsa.pub | clip
On Windows (Powershell) run: Get-Content id_rsa.pub | Set-Clipboard (Thx to @orion elenzil)
Add your key to your account via the website.
Finally setup your .gitconfig.
git config --global user.name "bob"
git config --global user.email bob@...
(don't forget to restart your command line to make sure the config is reloaded)
That's it you should be good to clone and checkout.
更多信息请访问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
如果你的问题最近突然出现(2021年下半年),这可能是由不兼容的哈希算法引起的。
截至本文(2021年10月),Git for windows的最新版本是2.33.1(发布说明),它已经采用了最新的OpenSSH 8.8p1(发布说明),而OpenSSH 8.8p1反过来已经弃用了SHA-1。同时,如果远程Git存储库仍然坚持SHA-1,则身份验证将失败。
要看看你是否会陷入这种情况,检查你的软件版本:
ssh -V
git --version
然后,您应该检查OpenSSH 8.8/8.8p发行说明中的“潜在不兼容更改”部分。
博士TL;
解决方案1:通过将此添加到~/中,再次启用SHA-1。ssh /配置文件:
Host <remote>
HostkeyAlgorithms +ssh-rsa
PubkeyAcceptedAlgorithms +ssh-rsa
请记住将<remote>替换为远程存储库的主机名。
解决方案2:使用ECDSA或Ed25519而不是RSA重新生成密钥对。例如:
ssh-keygen -t ecdsa -C <comment>
记住用你自己的助记短语替换<comment>。然后,将生成的公钥上传到远程存储库。
供你参考,我在访问Gitee.com时遇到了这个提示信息,Gitee.com在他们的服务器上使用golang.org/x/crypto/ssh,并在这里发布了一个关于这个问题的页面(中文)。
git@gitee.com: Permission denied (publickey).