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. web:频繁刷新浏览器的页面【小工具】

    [目的] 频繁刷新某一浏览器页面,小测试一下加载性能,或者打开的文件是否及时关闭,会不会导致服务器奔溃 [小工具] 新建txt,输入以下内容,并保存为html的格式,然后在浏览器中打开,则会定时刷新指 ...

  2. java中的排序--排序容器_TreeSet与TreeMap

    1.TreeSet:数据元素可以排序且不可重复. 对比: (1)Set接口:HashSet,元素必须重写hashcode和equals方法. (2)TreeSet:只要可以排序即可.去重:比较等于0即 ...

  3. myeclipse项目 不能打开

    重启电脑后, myeclipse项目 不能打开了, 之前都是好好的!! 出现: Failed to read the project description file (.project) for ' ...

  4. Windows系统不同磁盘间的扩容教程

    1.windows系统不同磁盘的空间扩展: https://www.cnblogs.com/yunweis/p/8023098.html

  5. 编写优秀Bug报告的艺术及案例分析

    编写优秀Bug报告的艺术及案例分析 ---Rex Black原著<Fine art of writing a good bug report > ---Kiki翻译于2005/5/28 前 ...

  6. 运行官方mysql 镜像

    sudo docker run -it -d --restart unless-stopped -p 13306:3306 -h mysql --name mysql -e MYSQL_ROOT_PA ...

  7. leetcode1010

    class Solution: def numPairsDivisibleBy60(self, time: 'List[int]') -> int: sums = 0 s = {} n = le ...

  8. 07_组件三大属性(1)_state

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. hadoop搭建部署

    HDFS(Hadoop Distributed File System)和Mapreduce是hadoop的两大核心: HDFS(文件系统)实现分布式存储的底层支持 Mapreduce(编程模型)实现 ...

  10. C# 模拟鼠标操作

    [Flags] enum MouseEventFlag : uint //设置鼠标动作的键值 { Move = 0x0001, //发生移动 LeftDown = 0x0002, //鼠标按下左键 L ...