zoukankan      html  css  js  c++  java
  • Git仓库由HTTPS切换成ssh秘钥连接

    Git关联远程仓库可以使用https协议或者ssh协议。

    【特点/优缺点】
    ssh:
    一般使用22端口;
    通过先在本地生成SSH密钥对再把公钥上传到服务器;
    速度较慢点

    https:
    一般使用443端口;
    通过用户名/密码授权,可用性比较高;
    速度较快点
    一般企业防火墙会打开80和443这两个http/https协议的端口,因此在架设了企业防火墙的时候使用https就可以很好的绕开安全限制使用git了,很方便;而对于ssh来说,企业防火墙很可能没打开22端口。

    【使用区别】
    clone项目:
      使用ssh方式时,需要配置ssh key,即要将生成的SSH密钥对的公钥上传至服务器;
      使用https方式时,没有要求,可以直接克隆下来。

    push项目:
      使用ssh方式时,不需要验证用户名和密码,之前配置过ssh key,(如果你没设置密码)直接push即可;
      使用https方式时,需要验证用户名和密码。

    【总结】
    HTTPS利于匿名访问,适合开源项目,可以方便被别人克隆和读取(但没有push权限);
    SSH不利于匿名访问,比较适合内部项目,只要配置了SSH公钥极可自由实现clone和push操作。

    鉴于公司突然由Git仓库由HTTPS切换成ssh秘钥连接,做一些该方面的博客整理。

    1、生成密钥对
    2、设置远程仓库上的公钥
    3、把git的 remote url 修改为git协议(以上两个步骤初次设置过以后,以后使用都不需要再次设置,此步骤视以后项目的remote url而定,如果以后其他项目的协议为https则需要此步骤)

    1、生成密钥对
    $ ssh-keygen -t rsa -C "your_email@youremail.com"
    1 Generating public/private rsa key pair.
    2 Enter file in which to save the key (/home/you/.ssh/id_rsa):
    3 Created directory '/c/Users/Administrator/.ssh'.
    4 Enter passphrase (empty for no passphrase):
    5 Enter same passphrase again:
    第2条:秘钥存储的位置,建议不要修改位置
    第4/5条:秘钥口令密码,建议不设置,直接回车

    注:若之前设置有ssh公钥,找不到的话,直接覆盖掉即可

    查看已有秘钥:上面创建时有提示秘钥位置,找到文件id_rsa.pub,用编辑器打开,复制出公钥

    2、设置远程仓库上的公钥
    在远程仓库中,右上角头像-设置-SSH公钥,把公钥粘贴到输入框中,设置公钥有效期,然后点击添加公钥

    测试SSH连接
    GitHub
    $ ssh -T git@github.com(填写自己仓库的SSH连接)

    3、把git的 remote url 修改为git协议
    $ git remote -v
    origin https://github.com/someaccount/someproject.git (fetch)
    origin https://github.com/someaccount/someproject.git (push)

    复制此ssh连接,然后使用命令** git remote set-url** 来调整你的url
    $ git remote set-url origin git@github.com:someaccount/someproject.git

    //第一次连接
    $ git remote add origin git@gitee.com:qiphon/music-thumb.git
    $ git push -u origin master

    然后你可以再用命令 git remote -v 查看一下,url是否已经变成了ssh地址

    最后验证一下是否成功
    $ git pull

    ——纸上得来终觉浅,绝知此事要躬行——

    参考链接1:https://www.cnblogs.com/wannananana/p/12059806.html
    参考链接2:https://www.cnblogs.com/wangdapang/p/10181823.html
    参考链接3:https://blog.csdn.net/qiphon3650/article/details/79376028
    参考链接4:https://www.cnblogs.com/dayang12525/p/12509053.html

  • 相关阅读:
    C++学生成绩管理系统
    蓝桥杯算法训练 最大最小公倍数
    蓝桥杯基础练习 完美的代价
    vim编辑器的使用技巧
    C语言中static关键字的用法
    在linux环境下编译运行OpenCV程序的两种方法
    Linux中gcc编译器的用法
    浅谈Java中的hashcode方法
    读CopyOnWriteArrayList有感
    徐汉彬:Web系统大规模并发——电商秒杀与抢购(技术实现)
  • 原文地址:https://www.cnblogs.com/guobaozhu/p/gitssh.html
Copyright © 2011-2022 走看看