解决github下创建一个项目版本库遇到的权限问题

来源:互联网 发布:淘宝上的秒杀是真的吗 编辑:程序博客网 时间:2024/06/15 06:03
首先在github上注册一个账号,创建一个“自定义名称”的版本库
创建完成之后,github会提供一个简易的操作指南
Java代码  收藏代码
  1. Global setup:  
  2.  Set up git  
  3.   git config --global user.name "user_name"  
  4.   git config --global user.email ×××@×××.com  
  5.   Add your public key  
  6.           
  7. Next steps:  
  8.   mkdir project_name  
  9.   cd project_name  
  10.   git init  
  11.   touch README  
  12.   git add README  
  13.   git commit -m 'first commit'  
  14.   git remote add origin git@github.com:user_name/project_name.git  
  15.   git push -u origin master  
  16.         
  17. Existing Git Repo?  
  18.   cd existing_git_repo  
  19.   git remote add origin git@github.com:user_name/project_name.git  
  20.   git push -u origin master  
  21.         
  22. Importing a Subversion Repo?  
  23.   Click here  
  24.         
  25. When you're done:  
  26.   Continue  


按照这个步骤来,我乎略来第一步的
Add your public key,以为他仅仅是一个帮助链接

但是在我提交代码的时候,出现了错误提示
Java代码  收藏代码
  1. “Permission denied (publickey).  
  2. fatal: The remote end hung up unexpectedly  
  3. ”  

这个错误的意思无非就是权限验证失误
造成没有权限的主要原因就是我漏掉的一步

于是我去补充,点击那个帮助链接就可以看到内容
http://help.github.com/linux-set-up-git/

按照步骤首先是

第一步 检查 SSH keys
Java代码  收藏代码
  1. $ cd ~/.ssh  


检查是否有".ssh"这个目录,如果没有则直接跳转到第三步,其他情况进入第二步

第二步 备份 并 删除已经存在的ssh key

如果你的目录文件中已经存在了ssh文件,那么你最好是备份并删除这些旧文件
操作步骤如下:
Java代码  收藏代码
  1. $ ls  
  2. # 显示来当前目录下的所有子目录  
  3. # config    id_rsa  id_rsa.pub  known_hosts  
  4. $ mkdir key_backup  
  5. # 在当前目录下创建一个叫做"key_backup"的子目录  
  6. $ cp id_rsa* key_backup  
  7. # 备份以前的key文件到上面新建的文件夹中  
  8. $ rm id_rsa*  
  9. # 删除旧的key文件  

第三部 生成一个新的ssh key

按照下面的代码操作,即可生成一个新的ssh key。当你被要求输入保存key的文件目录时,可以直接按enter键使用默认设置
Java代码  收藏代码
  1. $ ssh-keygen -t rsa -C "your_email@youremail.com"  
  2. # 使用一个私人的email地址,来生成一个ssh key  
  3. # 生成 公开/私有 的一对key(Generating public/private rsa key pair.)  
  4.   
  5. # 输入要保存key文件的目录(enter键 使用括弧里面的默认设置)  
  6. (/Users/your_user_directory/.ssh/id_rsa):<press enter>  
  7.   
  8. # 然后输入一个密码(passphrases)  
  9.   
  10. Enter passphrase (empty for no passphrase):<enter a passphrase>  
  11. Enter same passphrase again:<enter passphrase again>  


然后它会给你返回这些东西:

Java代码  收藏代码
  1. Your identification has been saved in /Users/your_user_directory/.ssh/id_rsa.  
  2. Your public key has been saved in /Users/your_user_directory/.ssh/id_rsa.pub.  
  3. The key fingerprint is:  
  4. 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db user_name@username.com  
  5. The key's randomart image is:  
  6. +--[ RSA 2032]----+  
  7. |     .+   +      |  
  8. |      ssssssss   |  
  9. |        = * *    |  
  10. |       o = +     |  
  11. |     ssss .      |  
  12. |     o oss       |  
  13. |      o .sE      |  
  14. |                 |  
  15. |                 |  
  16. +-----------------+  


最后 就是把你的SSH添加到你的GitHub账号中
访问网站并按照下列顺序访问 “Account Settings” > Click “SSH Public Keys” > Click “Add another public key”

打开上面生成的id_rsa.pub文件  (Notepad, TextEdit, or gedit will do just fine). 这个是你的公开的 SSH key. 你可能需要打开“查看隐藏目录文件”选项,才能找到他,因为这个 .ssh 是隐藏文件目录. 接下来就是非常重要的是,复制文件中的key内容(不要添加任意空格或者空行),复制到网站中弹出的文本框中,点击确定就大功告成了。


接下来测试一下
Java代码  收藏代码
  1. $ ssh -T git@github.comAttempts to ssh to github  
  2. Which should give you this:  
  3.   
  4. The authenticity of host 'github.com (207.97.227.239)' can't be established.  
  5. RSA key fingerprint is 16:27:ac:a5:76:28:2d:36:63:1b:56:4d:eb:df:a6:48.  
  6. Are you sure you want to continue connecting (yes/no)?  
  7. Don’t worry, this is supposed to happen. Type “yes”.  
  8.   
  9. Hi username! You've successfully authenticated, but GitHub does not provide shell access.  
  10. Having problems? 

http://chinacheng.iteye.com/blog/1173838

0 0