我用的是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没有密码,但仍然错误。
在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 URL(读/写)而不是Git只读URL,但您没有对该repo的写访问权限时,可能会发生此错误。
有时你只是想克隆你自己的repo,例如部署到服务器上。在这种情况下,实际上只需要READ-ONLY访问。但由于这是你自己的回购,GitHub可能会显示SSH URL,如果这是你的偏好。在这种情况下,如果您的远程主机的公钥不在您的GitHub SSH密钥中,您的访问将被拒绝,这是预期会发生的。
一个等效的情况是,当您尝试克隆其他人的回购时,您没有SSH URL的写访问权。
总之,如果您的意图是只克隆一个repo,请使用HTTPS URL (https://github.com/{user_name}/{project_name}.git)而不是SSH URL (git@github.com:{user_name}/{project_name}.git),这样可以避免(不必要的)公钥验证。
更新:GitHub现在显示HTTPS作为默认协议,这一举动可能会减少SSH url的滥用。
如果用户未生成之前设置的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