zoukankan      html  css  js  c++  java
  • git ssh免登陆,以及ssh config

    git去连接github或gitlab上的远程仓库,可以使用ssh方式,也可以使用git的账号密码登录
    这里介绍使用ssh方式实现免登陆(第一步和第二步即可实现)
     

    第一步:生成ssh秘钥

    ssh-keygen -t rss -C xxx@xx.com
     
    也可以不设置邮箱,直接【ssh-keygen -t】生成秘钥
     
    输入命令后第一步提示生成ssh key生成的位置,默认是~/.ssh/id_rsa
    然后提示输入密码,如果直接回车则没有密码,下次本地提交git时也不需要输入密码了
     
    生成文件的结果如下(~/.ssh/目录下内容):
    id_rsa
    id_rsa.pub
    known_hosts
     
    说明:
    id_rsa:私钥
    id_rsa.pub:公钥
    known_hosts:访问过的机器的公钥,第一次ssh 其他机器时如果有权限访问,会提示是否保存信息,下次会校验访问该机器的公钥与known_hosts中的是否一致,如果不一致则不能登录过去。解决方案是删除known_hosts中该条机器的记录
     

    第二步:gitlab中配置机器的ssh公钥

    登录gitlab
    Profile settings->SSH Keys->Add  SSH Key
    然后添加本地的~/.ssh/id_rsa.pub的内容即可
     
     
    至此,就实现了git免登陆

    如果是要ssh免登陆某台机器

    例如A要免登陆B机器
    在B机器的~/.ssh/目录下新建一个文件authorized_keys,然后将A机器的ssh 公钥放进去即可

    其他说明:ssh config与git的config

    ssh config
    git在本地提交到gitlab上时,会读取ssh的公钥秘钥信息。
    如果在~/.ssh/目录下有config则会优先读取config的配置信息,否则直接读取id_rsa和id_rsa.pub
     
    配置config文件(~/.ssh/config):
    Host xxx(ssh别名)
    HostName gitlab.xxx.com/IP(要连接的gitlab地址或主机名)
    User xxx@xxx.com(账号,要与git config的email对应)
    IdentityFile "~/.ssh/id_rsa_xxx(要使用的ssh私钥)"
     
    通过config文件可以管理多个ssh会话。通过Host别名也可以直接【ssh 别名】登录到其他机器上

    注意一点:

    1.配置了User,git push时就一定要配置相同的email
    如果不设置User,随意一个user.email都可以提交git push
    如果设置了User,user.email必须匹配到config中的User才能提交【git config user.email=xxxx@xxx.com】
     
    如果不想写死git config的user.email,可以不配置config的User,去掉这项就可以
     
    2.config文件权限要设置成600,否则提示Bad owner or permissions on /home/work/.ssh/config
     
    git config
    git push时需要配置user的email和name,除了上面说的配置了~/.ssh/config的User的情况。
    email和name可以随便填写,不存在的gitlab账号也可以提交成功,只要你把ssh的公钥加到gitlab里即可。
    只是如果email不存在,则gitlab上提交记录上用户头像不能点击;如果真实存在的gitlab账号,点击进入该用户的个人主页
     
    git config user.email “xxx@xxx.com"
    git config user.name “xxx@xxx.com"
     
     
  • 相关阅读:
    System.Web.HttpRequestValidationException——从客户端检测到危险的Request值
    SignalR 实现web浏览器客户端与服务端的推送功能
    MVC4项目中验证用户登录一个特性就搞定
    C# winform 上传文件到服务器
    解决memcached不能远程访问的问题
    MVC4验证用户登录特性实现方法
    IIS增加并发数
    IIS处理并发请求时出现的问题及解决
    jQuery使用ajax跨域获取数据
    jQuery调用WCF服务传递JSON对象
  • 原文地址:https://www.cnblogs.com/meitian/p/6776129.html
Copyright © 2011-2022 走看看