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"
 
 

git ssh免登陆,以及ssh config的更多相关文章

  1. Linux2 在Linux(CentOS)上配置SSH免登陆

    前言:      本文主要是我在安装hadoop之前,需要先配置SSH免登陆.通过网上搜索,发现不少类似的资料,但多少都有些小问题,所以结合自己的实践,记录在此,作为参考.如果能帮助到其他人,自然是更 ...

  2. Centos 集群配置SSH免登陆脚本

    首先编写脚本生成集群服务器列表: hostsList.sh #!/bin/bash preIp="11.11.225." pwd="dyj2017" for i ...

  3. 修改主机名和修改主机映射和ssh免登陆

    1.修改主机名 vim /etc/sysconfig/network NETWORKING=yes HOSTNAME=cc3 2.修改主机映射 vi /etc/hosts 127.0.0.1 loca ...

  4. [linux]阿里云主机的免登陆安全SSH配置与思考

    公司服务器使用的第三方云端服务,即阿里云,而本地需要经常去登录到服务器做相应的配置工作,鉴于此,每次登录都要使用密码是比较烦躁的,本着极速思想,我们需要配置我们的免登陆. 一 理论概述 SSH介绍 S ...

  5. hadoop集群配置SSH免登陆

    今天给大家总结一下hadoop集群之间免登陆的步骤 node1 ssh node4 1.在node1中生成密钥 [root@node1 ~]# ssh-keygen -t dsa -P '' -f ~ ...

  6. Mac OS X上如何实现到Linux主机的ssh免登陆

    转载说明: 本文转载自 http://www.aips.me/mac-key-ssh-login-linux.html 生成密钥对 用密码登录远程主机,将公钥拷贝过去 done 第一步:生成密匙对执行 ...

  7. Linux多个机器配置ssh免登陆

    多机器ssh免密码登录的教程,网上有很多,多的数不过来,但是我的安装过程不是很顺利,因为刚开始使用的是普通的user,虽然配置了sudo权限,但是没有root权限,导致了无论如何配置都不能实现免密码登 ...

  8. git + idea 配置 github设置ssh免登陆方式提交拉取代码

    1.下载安装git,官网:https://git-scm.com/download/win  安装默认配置安装 git2.20版本地址百度网盘地址: 链接:https://pan.baidu.com/ ...

  9. Linux SSH免登陆配置步骤

    [jans@centos2 ~]# cd ~[jans@centos2 ~]# ssh-keygen -t rsa  //生成rsa加密的公钥和密钥[jans@centos2 ~]# cat .ssh ...

随机推荐

  1. nine

    [拉肚子] 1.原因:消化不良.不良刺激.进食不当的食物/病毒 2.调理: 消化不良引起的:妈咪爱:山药粥:少食多餐 不良刺激引起的:不要受惊受凉过热

  2. 33.纯 CSS 创作牛奶文字变换效果

    原文地址:https://segmentfault.com/a/1190000015037234 感想:transform: translateY(50% & -50%);  animatio ...

  3. 设计模式、j2ee 部 分、EBJ 部 分

    八. 软 件 工 程 与 设 计 模 式 1 .UML 方 面 标准建模语言 UML.用例图,静态图(包括类图.对象图和包图),行为图,交互图(顺序图,合作 图),实现图. 2 .j2ee 常 用 的 ...

  4. 解决 shopnc b2b2c 版权问题 修改路经ULR及目录文件夹思路及教程

    相信各位使用过NC的朋友,多多少少收到过律师函,把一堆人吓尿了,原因你使用了盗版,大哥都要吃饭可以理解#网络那么大,他怎么能快速定位到您的,原因很简单 搜索引擎,NC在开发中定义了URL路由规则,在百 ...

  5. table布局与div布局

      DIV与TABLE本身并不存在什么优缺点,所谓web标准只是推荐的是正确的使用标签,好比说:DIV用于布局,而TABLE则本来就是转二维数据的.让TABLE做该做的事,并不是说页面里不出现TABL ...

  6. 关于vector变量的size,是一个无符号数引发的bug。LeetCode 3 sum

    class Solution { public: vector<vector<int>> threeSum(vector<int>& a) { vector ...

  7. FireDac 组件说明一

    TFDManager 连接定义和Connect连接管理  TFDConnection 数据库连接组件,支持三种连接方式:1.持久定义(有一个唯一名称和一个配置文件,可以由FDManager管理) 例: ...

  8. ElasticSearch match, match_phrase, term区别

    1.term结构化字段查询,匹配一个值,且输入的值不会被分词器分词. 比如查询条件是: { "query":{ "term":{ "foo" ...

  9. groovy语法

    1.注释1.1. 单行注释1.2. 多行注释1.3. GroovyDoc注释1.4. Shebang线2.关键词3.标识符3.1. 普通标识符3.2. 带引号的标识符4.字符串4.1. 单引号字符串4 ...

  10. Haskell语言学习笔记(85)Async

    安装 async $ cabal install async async-2.2.1 installed async / wait / concurrently async :: IO a -> ...