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

news2024/11/8 23:58:16

一、背景:

        多邮箱或者多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.com
        HostName=github.com
        User=git用户名
        IdentityFile=~/.ssh/对应的自定义私钥

#gitlab
Host gitlab.com
        HostName gitlab.com
        User gitlab
        IdentityFile ~/.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.coloradmin.cn/o/1813475.html

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

相关文章

Qt C++ TCP服务端响应多客户端通讯

本示例使用的设备&#xff1a;WIFI无线4G网络RFID云读卡器远程网络开关物流网阅读器TTS语音-淘宝网 (taobao.com) #include "mainwindow.h" #include "ui_mainwindow.h" #include "QMessageBox" #include <QDebug> #include <exceptio…

【春秋云镜】Faculty Evaluation System未授权任意文件上传漏洞(CVE-2023-33440)

因为该靶场没有Write up,索性自己搞一下&#xff0c;方便别人&#xff0c;快乐自己&#xff01; 漏洞概述&#xff1a; Sourcecodester Faculty Evaluation System v1.0 is vulnerable to arbitrary code execution via /eval/ajax.php?actionsave_user. 漏洞复现&#xff…

Halcon 多相机统一坐标系

小杨说事-基于Halcon的多相机坐标系统一原理个人理解_多相机标定统一坐标系-CSDN博客 一、概述 最近在搞多相机标定等的相关问题&#xff0c;对于很大的场景&#xff0c;单个相机的视野是不够的&#xff0c;就必须要统一到一个坐标系下&#xff0c;因此我也用了4个相机&#…

SpringBoot Vue Bootstrap 旅游管理系统

SpringBoot Vue 旅游管理系统源码&#xff0c;附带环境安装&#xff0c;运行说明 源码地址 开发环境 jdk1.8,mysql8,nodejs16,navicat,idea 使用技术springboot mybatis vue bootstrap 部分功能截图预览

数据合规怎么做?哪些机构可以做数据合规

企业将数据资源入表的工作是一项复杂而全面的任务 财务部门负责统计数据资源的成本、销售数据等信息,并确保数据资源的会计处理符合会计要求&#xff1b; 数据部门则负责统计数据成本来源、价值实现路径等信息&#xff1b; 法务部门需要确认数据的收集和使用遵循相关的合规要求…

算法分析与设计期末考试复习

重点内容&#xff1a; 绪论&#xff1a; 简单的递推方程求解 1.19(1)(2) 、 教材例题 多个函数按照阶的大小排序 1.18 分治法&#xff1a; 分治法解决芯片测试问题 计算a^n的复杂度为logn的算法&#xff08;快速幂&#xff09; 分治法解决平面最近点对问…

基于遗传优化算法的风力机位置布局matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于遗传优化算法的风力机位置布局matlab仿真&#xff0c;风力机位置布局优化是风能转换系统设计中的一个重要环节&#xff0c;旨在最大化风场的整体发电效率。仿…

数字芯片——时钟与复位

关于此次章节我想要探讨的问题是门控时钟的处理&#xff08;Clock Gating Methodology&#xff09;和时钟复位策略。在低功耗设计中&#xff0c;门控时钟是结构最简洁&#xff0c;最容易实现的电路结构。如上期所讲的&#xff0c;一个控制信号和时钟逻辑与在一起输出的信号作用…

redis设计与实现(四)服务器中的数据库

服务器中的数据库 Redis服务器将所有数据库都保存在服务器状态server.h结构的db数组中&#xff0c;db数组的每个项都是一个redis.h/redisDb结构&#xff0c;每个redisDb结构代表一个数据库。 在初始化服务器时&#xff0c;程序会根据服务器状态的dbnum属性来决定应该创建多少…

产品人生(12):从“产品生命周期管理”看如何做“职业规划”

产品生命周期管理是产品人常接触的一个概念&#xff0c;它是一种全面管理产品从概念构想、设计开发、生产制造、市场推广、销售使用&#xff0c;直至最终退役的全生命周期过程的方法论和一系列业务流程。下面我们来简单介绍下产品生命周期管理&#xff1a; 概念阶段&#xff1a…

C++ | Leetcode C++题解之第145题二叉树的后序遍历

题目&#xff1a; 题解&#xff1a; class Solution { public:void addPath(vector<int> &vec, TreeNode *node) {int count 0;while (node ! nullptr) {count;vec.emplace_back(node->val);node node->right;}reverse(vec.end() - count, vec.end());}vect…

【全开源】多平台租房系统源码(Fastadmin+ThinkPHP+Uniapp)

&#x1f3e0;多平台租房系统&#xff1a;一站式租房新体验&#x1f50d; &#x1f310;一、引言&#xff1a;租房市场的变革 在快节奏的现代生活中&#xff0c;租房已成为许多人解决居住问题的首选。然而&#xff0c;传统的租房方式往往繁琐且效率低下。随着互联网的飞速发展…

macOS Sequoia 将 Mac 生产力与智能化提升至全新高度 (macOS 15 ISO、IPSW、PKG 下载)

macOS Sequoia 将 Mac 生产力与智能化提升至全新高度 (macOS 15 ISO、IPSW、PKG 下载) iPhone 镜像、Safari 浏览器重大更新、备受瞩目的游戏和 Apple Intelligence 等众多全新功能令 Mac 使用体验再升级 请访问原文链接&#xff1a;https://sysin.org/blog/macOS-Sequoia/&a…

全方位·多层次·智能化,漫途水库大坝安全监测方案

党的十九届五中全会提出&#xff0c;到2025年前&#xff0c;完成新出现病险水库的除险加固&#xff0c;配套完善重点小型水库雨水情和安全监测设施&#xff0c;实现水库安全鉴定和除险加固常态化。 加快推进小型水库除险加固。加快构建气象卫星和测雨雷达、雨量站、水文站组成…

GIS之arcgis系列10:arcpy实现批量掩膜提取

按掩膜提取 (Spatial Analyst) 提取掩膜所定义区域内的相应栅格像元。 OutRas ExtractByMask(InRas1, InMsk1, "INSIDE") 使用情况 输入栅格中的其他属性&#xff08;若有的话&#xff09;将按照原样添加到输出栅格属性表。 根据所记录的属性&#xff0c;某些属性…

Golang | Leetcode Golang题解之第145题二叉树的后序遍历

题目&#xff1a; 题解&#xff1a; func reverse(a []int) {for i, n : 0, len(a); i < n/2; i {a[i], a[n-1-i] a[n-1-i], a[i]} }func postorderTraversal(root *TreeNode) (res []int) {addPath : func(node *TreeNode) {resSize : len(res)for ; node ! nil; node n…

STM32—U8g2图形库练习

一、新建CubeMX工程 1.照例将RCC配置为外部高速晶振&#xff08;精度更高&#xff09;——HSE&#xff1b;将SYS的Debug设置成Serial Wire&#xff08;否则可能导致芯片自锁)&#xff1b; 2.配置I2C2作为OLED的通讯方式。 3.TIM1配置&#xff1a;U8g2图形库需要us级延迟推动&…

uniapp地图选择位置

直接上代码 通过一个点击事件调用官方api即可调用 点击调用成功后显示如下 然后选择自己所需要的位置即可

Mssql数据注入

1.查询用户创建的数据表 select id,name from sysobjects where xtypeu ; 2.查询用户创建数据表的具体列名 select * from syscolumns where id 上一步获取的id值; 3.查询具体内容 select id,字段名 from 数据表名&#xff1b; 4.数据库名 db_name() 5.用户登录名 su…

使用Ollama简单部署本地Qwen2

Ollama 是一个开源的、本地运行的 AI 聊天模型&#xff0c;允许在自己的设备上运行 LLM&#xff0c;无需依赖云服务。它支持多种 LLM。目前Ollama library已经支持Qwen2&#xff0c;可以直接使用。 首先安装ollama&#xff0c; 访问官网 下载 ollama 对应版本 Download Ollama…