设置SSHkeys多服务器免登录配置(ssh config)

一、背景:

        多邮箱或者多git账号进行同一台电脑开发的情况。

        有时候,开发时可能会面临一个情况,就是通过自己的电脑,可能同时需要开发多个不同地方的项目,或者说,自己建立的项目已经配置好SSH验证免密登录,进行项目的推拉,但是现在要做另一个公司的项目,使用的提交账号又不同了,或者服务器不同等等。

        如果每一次都需要对项目的拉取推送进行用户名、密码的登录进行,切换的时候也会比较麻烦,如果没有校验sshkey也容易出现一些额外的问题。

        所以就可以通过设置ssh config的配置,指定git在连接不同服务器时,或者不同项目时的自动免密指向。

        我这边个人也是通过搜索去配置成功的,但是由于网上的一些配置中,有些小细节没特别指出,导致我配置了多次无法连通,为了避免以后忘记了又踩坑,就专门记录该文章。

        

二、配置过程

1、单账号默认的公私钥对生成

ssh keys的公私钥对,在git读取过程中,是会存在默认读取,例如网上通常直接教程是使用以下git命令语句,生成默认的公私钥对:

- 打开进入git命令行界面:

ssh -keygen -t rsa -C "在github或gitlab上的登录名或邮箱"

- 然后就是一直按回车直至生成key成功,就查看公钥:

cat ~/.ssh/id_rsa.pub

- 然后把公钥结果,配置到对应git管理工具(github、gitlab等)上面,就可以尝试去拉取代码测试等。

但是这个方式,其实是使用的默认方式,而默认方式相当于单账号匹配免密连接。

2、自定义ssh keys配置的公私钥生成

基于背景情况,需要选择多个账号或者多服务器时,就要使用自定义生成公私钥对,主要是指自己定义名称文件,然后配置到ssh config中。

1)自定义生成公私钥对

ssh-keygen -t rsa -C “git登录名或邮箱名” -f 自定义的文件名(例如id_rsa_xx)

2)config配置:

进入.ssh/目录,查看是否存在config这个文件,如果没有则创建:

这里是已经创建好了,创建命令:

touch config

然后编辑文件:

vim config

根据你的需要,加入多个配置,每一个Host配置,表示一个免密连接配置。例如,我这里配置的是github和gitlab这种不同来源的情况,就可以配置成如下:

Host github.comHostName=github.comUser=git用户名IdentityFile=~/.ssh/对应的自定义私钥#gitlab
Host gitlab.comHostName gitlab.comUser gitlabIdentityFile ~/.ssh/id_rsa_gitlab

 - Host:该配置host命名,在某些情况下需要额外使用

- HostName:连接域名、地址

- User:git登录用户名

- IdentityFile:对应的自定义私钥。我们需要知道的是,我们在github上的ssh keys的配置,配的是公钥(.pub文件),但是此处我们进行连接校验的,本地是使用私钥,也就是没有.pub结尾的那个对应文件(这个地方有个文章没说明直接用来pub,导致连接不成功)。

·一些windows下的文件编辑命令:

上面的配置使用的是windows下对文件操作的命令,这个可以具体去搜索下。这里引入一个点,个人使用的是IDEA去进行连接git打开命令窗口,如果你完成了文件编辑需要退出,那么需要使用ctrl+C去进入命令模式,然后使用q!或者wq之类的命令退出,如果直接esc是会导致你光标返回到编码界面的。

3、连接测试:

github平台可以直接通过命令行代码测试:

ssh -T git@github.com

返回结果有提示你的账户successfully的话,就表示连接成功。但是如果是其他的平台,比如我此处需要配置的是额外多一个gitlab,则无法通过这种方式测试,只能去拉取、推送项目测试。

4、其他配置:这个是摘抄别人的,还不确定是否用的上。

·配置Git本地仓库

        对于需要使用特定GitLab账号的仓库,你需要在仓库的`.git/config`文件中或者通过命令行配置URL,使用上述SSH Config中定义的别名:

```bash git remote set-url origin gitlab1:username/repo.git ```

或者通过命令行直接配置用户信息:

```bash #

对于全局设置(谨慎使用,可能会与特定仓库设置冲突)

git config --global user.name "Global Username"

git config --global user.email "global@example.com"

# 对于特定仓库

cd /path/to/your/repo

git config user.name "Repo-Specific Username"

git config user.email "repo-specific@example.com"

```

这样,当你与不同仓库交互时,Git会自动使用正确的SSH密钥和用户信息进行身份验证。记得替换上述命令中的`username`、`repo`及邮箱等信息为实际值。

三、一个小坑

在整个过程中,出现一个问题,就是有一次配置是正确的但是却无法直接生效(拉取gitlab项目的时候),会提示没权限,然后我重启了一下,就生效了。

判断可能是因为.ssh/下的配置文件,需要重启机器去进行读取生效吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/28013.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# WPF入门学习主线篇(二十三)—— 控件模板(ControlTemplate)和数据模板(DataTemplate)

C# WPF入门学习主线篇(二十三)—— 控件模板(ControlTemplate)和数据模板(DataTemplate) 在WPF开发中,控件模板(ControlTemplate)和数据模板(DataTemplate&am…

基于Python+OpenCV+SVM车牌识别系统(GUI界面)【W3】

简介: 随着交通管理的日益复杂化和智能化需求的增加,车牌识别系统在安防、智慧交通管理等领域中扮演着重要角色。传统的车牌识别系统主要基于图像处理和模式识别技术,随着计算机视觉技术的发展,基于Python、OpenCV和机器学习算法的…

2024年6月-Docker配置镜像代理

步骤1:编辑 daemon.json 文件 vim /etc/docker/daemon.json步骤2:添加配置 将以下内容粘贴到文件中: {"insecure-registries": ["192.168.0.99:8800"],"data-root": "/mnt/docker","registr…

文件初阶入门(葵花宝典)

1. 文件的顺序读写 1.1 顺序读写函数的介绍 函数名 功能 适用于 fgetc 字符输入函数 所有输入流 fputc 字符输出函数 所有输出流 fgets 文本行输入函数 所有输入流 fputs 文本行输出函数 所有输出流 f…

小数二分个人见解

小数二分 小数二分题目 小数二分 整数二分 是找边界点,而小数二分找的是 近似值。 整数二分是在一个整型数组当中 查找,而小数二分是在数轴中 查找,都是每次可以排除一半的区间,只不过小数二分中while循环内的结束条件和整数二分…

大模型中的计算精度——FP32, FP16, bfp16之类的都是什么???

大模型中的计算精度——FP32, FP16, bfp16之类的都是什么??? 这些精度是用来干嘛的??混合精度 mixed precision training什么是混合精度?怎么转换呢? 为什么大语言模型通常使用FP32精度训练量化…

关于element-plus中el-select自定义标签及样式的问题

关于element-plus中el-select自定义标签及样式的问题 我这天天的都遇到各种坑,关于自定义,我直接复制粘贴代码都实现不了,研究了一下午,骂骂咧咧了一下午,服气了。官网代码实现不了,就只能 “ 曲线救国 ”…

昂科烧录器支持Prolific旺玖科技的电力监控芯片PL7413C1FIG

芯片烧录行业领导者-昂科技术近日发布最新的烧录软件更新及新增支持的芯片型号列表,其中Prolific旺玖科技的高度集成的电力监控芯片PL7413C1FIG已经被昂科的通用烧录平台AP8000所支持。 PL7413C1FIG是一款高度集成的电力监控芯片,用于测量电力使用情况的…

MySQL-分组函数

041-分组函数 重点:所有的分组函数都是自动忽略NULL的 分组函数的执行原则:先分组,然后对每一组数据执行分组函数。如果没有分组语句group by的话,整张表的数据自成一组。 分组函数包括五个: max:最大值mi…

私人云盘(自动云同步)

一、项目简介 模仿小米的云服务,实现一个通过TCP实现的私人云盘,因为能力有限,所以只实现自动云同步这一个功能,具体可以分为三个小功能,即保持云端和终端数据一致、实现文件的上传与下载以及手动同步 二、涉及到的知…

P4. 微服务: 匹配系统(上)

P4. 微服务: 匹配系统 上 Tips0 概述1 匹配系统流程2 游戏系统流程3 websocket 前后端通信的基础配置3.1 websocket 的需要的配置3.2 websocket 连接的建立3.3 为 websocket 连接添加 jwt 验证 4 实现匹配界面和对战界面的切换5 匹配系统的客户端和 websocket 后端交互部分5.1 …

助力知识博主,实现在家搞副业的FlowUs新策略

助力知识博主,实现在家副业的FlowUs新策略 我们设定了一个雄心勃勃的目标:帮助100位知识博主在FlowUs上实现副业成功。这个目标不仅得到了团队成员的广泛支持,甚至有人认为它过于保守,因为FlowUs的多功能性使其成为自媒体博主收入…

【电路笔记】-共集极放大器

共集极放大器 文章目录 共集极放大器1、概述2、等效电路3、电压增益4、偏置方法5、输入阻抗6、输出阻抗7、电流增益8、示例:共集电极放大器的电压、电流和功率增益9、达林顿对10、总结1、概述 本文介绍另一种用于放大信号的双极晶体管架构,通常称为共集电极放大器 (CCA)。 C…

JS读取目录下的所有图片/require动态加载图片/文字高亮

<template class"aa"><div class"demo-image__lazy container"><div class"head"><div class"left-bar"><div><span>综合</span></div><div><span>定位</span><…

东理咨询交流论坛系统

开头语&#xff1a;你好呀&#xff0c;我是计算机学长猫哥&#xff01;如果有相关需求&#xff0c;文末可以找到我的联系方式。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术、B/S架构 工具&#xff1a;MyEclipse 系统展示 首页 管理员功能…

企业化运维(3)_PHP、nginx结合php-fpm、memcache、openresty、goaccess日志可视化

###1.PHP源码编译### 解压PHP压缩包&#xff0c;切入PHP目录&#xff0c;进行configure-->make-->make installd三部曲 [rootserver1 ~]# yum install -y bzip2 systemd-devel libxml2-devel sqlite-devel libpng-devel libcurl-devel ##依赖性 [rootserver1 ~]# yum…

服务器远程桌面经常连接不上,造成远程桌面连接不上的原因都有哪些

服务器远程桌面连接不稳定或经常连接不上是一个较为常见的技术问题&#xff0c;其可能的原因涉及多个层面&#xff0c;包括网络设置、服务器配置、系统安全等方面。下面将详细探讨一些可能造成远程桌面连接问题的主要原因&#xff1a; 首先&#xff0c;网络连接不稳定是导致远…

vite-plugin-mock前端自行模拟接口返回数据的插件

vite-plugin-mock前端自行模拟接口返回数据的插件 安装导入、配置&#xff08;vite.config.js&#xff09;使用目录结构/mock/user.js具体在页面请求中的使用 注意事项 中文文档&#xff1a;[https://gitcode.com/vbenjs/vite-plugin-mock/blob/main/README.zh_CN.md) 参考其他…

MYSQL八、MYSQL的SQL优化

一、SQL优化 sql优化是指&#xff1a;通过对sql语句和数据库结构的调整&#xff0c;来提高数据库查询、插入、更新和删除等操作的性能和效率。 1、插入数据优化 要一次性往数据库表中插入多条记录&#xff1a; insert into tb_test values(1,tom); insert into tb_tes…

关于Unity四种合批技术详解

文章目录 一.静态合批(StaticBatching)1.启用静态合批2.举例说明3.静态合批的限制4.静态合批的优点缺点5.动态指定物品合批 二.动态合批(Dynamic Batching)1.启用动态合批2.合批规则3.举例说明4.使用限制 三.GPU Instancing1.启用GPU Instancing2.启用限制3.举例说明 四.SRP Ba…