设为首页 收藏本站
查看: 1031|回复: 0

[经验分享] ssh-key 与 git账户配置以及多账户配置

[复制链接]

尚未签到

发表于 2018-1-15 13:28:12 | 显示全部楼层 |阅读模式
在使用git的时候,git与远程服务器是一般通过ssh传输的(也支持ftp,https),我们在管理远程分支之前 需要在本机上创建ssh-key密钥对,并把其中的公钥添加到github中。
单用户情况:

如果你就会一直在你的计算计算机使用一个远程的Git服务器,并且账号是一个,比较简单,生成key的时候也没有太大注意的地方,直接运行如下的第一步然后按回车就可以了
  1、在 gitbash上运行  ssh-keygen -t  rsa  -C  "Github账户邮箱"
  2、接下来会提示输入key的名字 默认名字为id_rsa .默认就行了
  3、然后会提示输入口令,这里口令与Github中的密码无关,随便输入可以为空。
  4. 如果在第二步中的没有重新命名的话,则忽略此步骤,ssh agent默认只读取id_rsa,为了让SSH识别新的私钥,需将其添加到SSH agent中
    ssh-add>  如果出现Could not open a connection to your authentication agent的错误,就试着先用以下命令:
  

ssh-agent bash
  
ssh-add>  

  添加完之后 登陆Github   点击 网页右上侧的 Account Setting 按钮 - 选择 ssh-keys  点击Add SSH Key  ,在title中输入名字,然后将公约即id_rsa.pub添加到ssh-key处。
  在git bash的命令行中输入
  ssh -T git@github.com 如果能正常访问即可
  

$ ssh -T git@github.com  
Enter passphrase for key 'C:/Users/kunkun/.ssh/github.rsa':
  
Hi kunkun01! You've successfully authenticated, but GitHub does not provide shel
  
l access.
  

  


多账户又分为两种情况  
  也可以参考老外写的 Git config for mutiply SSH keys
  1、针对同一个服务器的同用户(比如 我平时开发开源的小东东,有的是一个账号是公司的账号对外开源项目用的,另外我自己也比较崇尚开源,所以自己也有了Github账号)
  2,针对不同服务器的用户(现在pass平台 部署应用都是通过git来管理的,比如常见的Openshift,Heroku appfog等,在这里我也注册了账号)
  在我们访问git服务器的时候,如果通过ssh的方式话,访问不同的服务器要使用不同的ssh-key。经过在第一步的过程中,在创建ssh-key的默认命名为id_rsa,如果使用不同的账户的,必须得给不同的key设置不同的名字,否则如果继续使用默认名字的话,会把之前的id_rsa覆盖掉。
  具体操作如下 user2是我的另外一个Github账户
  1、新建user2的SSH Key
  

#新建SSH key:  
$ cd ~/.ssh     # 切换到C:\Users\Administrator\.ssh
  
ssh-keygen -t rsa -C "mywork@email.com"  # 新建工作的SSH key
  
# 设置名称为id_rsa_work

  
Enter file in which to save the key (/c/Users/Administrator/.ssh/id_rsa):>  

  2、新密钥添加到SSH agent中
  因为默认只读取id_rsa,为了让SSH识别新的私钥,需将其添加到SSH agent中:
  

ssh-add ~/.ssh/id_rsa_work  

  如果出现Could not open a connection to your authentication agent的错误,就试着用以下命令:
  

ssh-agent bash  
ssh
-add ~/.ssh/id_rsa_work  

  

(第二步 好像没什么作用)  

  3、修改config文件 将账户以及git服务器与对应的密钥关联。在~/.ssh目录下找到config文件,如果没有就创建:
  touch config
  然后修改如下: 我的config配置如下:
  

# 该文件用于配置私钥对应的服务器  
# Default github user(first@mail.com)
  
Host github.com
  
HostName github.com
  
User git
  
IdentityFile C:
/Users/Administrator/.ssh/id_rsa  

  
# second user(second@mail.com)
  
# 建一个github别名,新建的帐号使用这个别名做克隆和更新
  
Host github2
  
HostName github.com
  
User git
  
IdentityFile C:
/Users/Administrator/.ssh/id_rsa_work  

  其规则就是:从上至下读取config的内容,在每个Host下寻找对应的私钥。这里将GitHub SSH仓库地址中的git@github.com替换成新建的Host别名如:github2,那么原地址是:git@github.com:funpeng/Mywork.git,替换后应该是:github2:funpeng/Mywork.git.
  4、用记事本打开新生成的~/.ssh/id_rsa2.pub文件,将里面的内容添加到GitHub后台。
  可不要忘了添加到你的另一个github帐号下的SSH Key中。
  5、测试:
  

$ ssh -T git@github.com  
Hi BeginMan! You've successfully authenticated, but GitHub does not provide shel
  
l access.
  

  

$ ssh -T github2  
Hi kunkun01
! You've successfully authenticated, but GitHub does not provide shell access.   

  6、应用
  测试成功,那么我尝试在我的work目录下克隆我@126.com账号下的远程仓库。如下:
  

$ git clone github2:kunkun01/Mywork.git  
Cloning into 'Mywork'...
  
remote: Counting objects: 3, done.
  
remote: Total 3 (delta 0), reused 0 (delta 0)
  
Receiving objects: 100% (3/3), done.
  
Checking connectivity... done                                                                               
  

  如果你只是通过这篇文章中所述配置了Host,那么你多个账号下面的提交用户会是一个人,所以需要通过命令git config --global --unset user.email删除用户账户设置,在每一个repo下面使用git config --local user.email '你的github邮箱@mail.com' 命令单独设置用户账户信息

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-435333-1-1.html 上篇帖子: git reset soft,hard,mixed之区别深解 下篇帖子: git 使用经验与技巧总结 (不断更新中)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表