本机配置SSH连接代码仓库

news2024/11/18 20:22:05

 一、创建SSH  

1. 查看是否之前有过ssh,在终端输入。

cd ~/.ssh

        如果显示No such file or directory ,表示之前没有创建过ssh,直接进入下一步;如果可以直接进入需要先清理rss,终端执行命令:

mkdir key_backup $ cp id_rsa* key_backup $ rm id_rsa*

2. 输入自己的github邮箱账号创建

        在终端输入(邮箱账号替换为自己的Github登录邮箱)

ssh-keygen -t rsa -C "XXXXXXXX@163.com"

        可以一路回车,在默认地址创建

二、在github上进行连接

1. 打开github,点击settings,然后点击SSH and GPG keys

2. 点击New SSH key

3. 在终端中输入如下指令进入.ssh文件夹

cd ~/.ssh/

然后输入如下指令查看所有的文件

ls

然后输入如下指令打开rsa.pub

cat id_rsa.pub

然后将显示出来的内容都黏贴到github中的key部分

4. 输入如下命令判断是否成功

ssh -T git@github.com

        出现这个就算成功"You`ve successfully authenticated"

        用 SSH 方式推送 HTTP 形式的 github 链接可能会报错,尝试编辑 ~/.ssh/config 文件(没有就新增),windows/mac 在用户目录下的.ssh目录,添加如下内容:

Host github.com
    HostName ssh.github.com
    User git
    Port 443

5. 利用git config 里设置github 登录名以及登陆邮箱,执行以下两个命令:

git config --global user.name "your name" 
 
git config --global user.email "your_email@youremail.com"

6. 执行如下指令上传你的本地文件夹

cd /Users/Tush/Documents/test
git init
git add .
git commit -m 'first commit'
git remote add origin https://github.com/XXX/XXX.git
git push -u origin master

上一步最后一个指令也要注意是 "git push -u origin master" 还是 "git push -u origin main"。

三、多个 SSH keys 的配置,方便 Git 对不同仓库的使用与管理

        在搬砖的过程中,或多或少都会与不同的代码托管平台打交道。比如我就喜欢用 gitee(码云) 作为 md 笔记中的图床,github 作为个人项目的代码管理仓库。而公司又会使用其它的托管平台来管理,比如阿里云等。

单个 SSH keys 在使用并生效后,再配置其它平台就会造成失效等各种问题。看了各个仓库的 SSH keys 生成教程,基本只有单个 SSH keys 的生成。在我们想要对多个代码托管平台上的项目同时操作的时候,帮助不大。

        在配置多个 SSH keys 的过程中,我把配置的过程与碰见的一些问题,记录在该文章内,希望能给各位提供些许帮助。

1. 生成各平台指定的 SSH-Keys

打开 git Bash Here,输入命令,修改邮箱后一路回车。如需要设置密码的话可以额外自行配置。

-t : “是指定秘钥的类型”

-C :“是指定用于识别密钥的注释,即可以填写任意值,一般都填邮箱”

// 先生成一个默认的 id_rsa,不生成可能会导致别名的配置 keys 不生效

$ ssh-keygen -t rsa -C "your_email@example.com" -f ~/.ssh/id_rsa

// 再依次指定别名,生成其他给平台用的 ssh_key 文件

$ ssh-keygen -t rsa -C "your_email@example.com" -f ~/.ssh/github_rsa
$ ssh-keygen -t rsa -C "your_email@example.com" -f ~/.ssh/gitee_rsa
$ ssh-keygen -t rsa -C "your_email@example.com" -f ~/.ssh/aliyun_rsa

        此时,系统盘用户名下的用户 .ssh 目录下应该有 8 个文件:id_rsa 和 id_rsa.pub,github_rsa 和 github_rsa.pub,gitee_rsa 和 gitee_rsa.pub,aliyun_rsa 和 aliyun_rsa.pub。

可能会出现的错误:

  1. 生成的公钥文件(.pub)未在 .ssh 文件夹内,或者生成文件的位置不对,请检查控制台当下的路径与生成的路径。

  2. 有些控制台可能识别不了 “ ~ ” , 修改添加的路径直接用 “ ./ ” 操作

2. 配置公钥

将它们的公钥文件(.pub)内部的所有内容复制黏贴到对应的代码托管仓库上。

以 github 为例,如图所示:

将对应平台的公钥添加至 Key 框内。Title 可随意填,具有标识性即可。

最后点击 Add SSH key 保存即可。 

3. 配置私钥

// 先执行命令:

ssh-agent bash

// 再添加私钥

$ ssh-add ~/.ssh/github_rsa 
$ ssh-add ~/.ssh/gitee_rsa
$ ssh-add ~/.ssh/aliyun_rsa

// 添加成功如下图所示。

ssh-add 一些命令参数如下:

-D:删除 ssh-agent 中的所有密钥.
-d:从 ssh-agent 中的删除密钥
-L:显示 ssh-agent 中的公钥
-l:显示 ssh-agent 中的私钥

 添加私钥,并通过命令 ssh-add -l 来查看当前配置成功的私钥列表,如图中所示:

ssh-add -l

可能会出现的错误:

  1. ssh-agent bash 提示错误信息:unable to start ssh-agent service, error :1058

解决:管理员权限打开 Power Shell,执行:

Set-Service -Name ssh-agent -StartupType automatic
  1. 添加私钥提示错误信息:No such file or directory

解决:检查当前控制台路径与添加的路径是否匹配,调整路径即可,如上图所示。

4. 新增 config 配置文件

        若系统盘用户名下的 .ssh 目录下无 config 文件,那么新建一个 config 文件。该文件没有文件后缀名,类型显示为文件,双击后可用记事本等打开进行编辑。

        我的配置文件如下,可参考配置文件参数说明:

# 配置文件参数
# Host : 配置对应的的主机名和 ssh 文件(可以直接填写 ip 地址)
# HostName : 要登录主机的主机名(建议与 Host 一致)
# PreferredAuthentications :配置登录的验证方式(含密码可自行查询配置方式)
# IdentityFile : 指明上面 User 对应的配置路径
# User : 登录名(如 github 的 username)
# Port: 端口号(默认 22)

# github.com
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile C:/Users/tag_a12/.ssh/github_rsa
User your_email@example.com

# aliyun.com
Host code.aliyun.com
HostName code.aliyun.com
PreferredAuthentications publickey
IdentityFile C:/Users/tag_a12/.ssh/aliyun_rsa
User your_email@example.com

5. 测试 SSH 链接

// 命令语句

$ ssh -T git@[Host 配置名]

// 使用如下:

$ ssh -T git@github.com
$ ssh -T git@code.aliyun.com

成功提示:

        Welcome to GIT,your name!

        也可以直接进行项目的克隆或提交进行测试。我的建议是,在配置完成后,对各个平台都进行一次链接测试。

可能会出现的错误:

  1. 提交代码时,提示 Host key verification failed。

原因:若你的项目先克隆到了本地,再修改 SSH keys 后,在提交的时候由于公钥不一样了,所以无法登录。

解决:只需要进行一次链接测试便可解决。

        以上就是多个 SSH-Keys 的配置过程,如果在配置过程中还发现有其它问题或者还有看不懂的地方,欢迎留言讨论。

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

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

相关文章

docker拉取镜像错误missing signature key

参考地址:docker拉取镜像错误 missing signature key-CSDN博客 linux系统,使用docker拉取的时候,报错如下 missing signature key 就一阵莫名其妙,之前还好好的,突然就不行了 按照网上说的方法,查看doc…

华为数通方向HCIP-DataCom H12-831题库(单选题:261-280)

第261题 某网络通过部署1S-IS实现全网与通,若在一台IS-IS路由器的某接口下配置命令isis timer holding multiplier 5 level-2,则以下关于该场景的描述,正确的是哪一项? A、该接口Level-2邻居保持时间为5秒 B、该接口Level-1邻居保持时间为30秒 C、该接口为点对点链路接口 …

MySQL 8.0 OCP (1Z0-908) 考点精析-架构考点6:InnoDB Tablespaces之系统表空间(System Tablespace)

文章目录 MySQL 8.0 OCP (1Z0-908) 考点精析-架构考点6:InnoDB Tablespaces之系统表空间(System Tablespace)系统表空间(System Tablespace)主要系统变量innodb_data_file_path关于autoextend和max属性系统表空间文件默…

猫头虎博客带您使用Markdown编辑器

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

山西电力市场日前价格预测【2023-10-17】

日前价格预测 预测说明: 如上图所示,预测明日(2023-10-17)山西电力市场全天平均日前电价为337.57元/MWh。其中,最高日前电价为437.22元/MWh,预计出现在18: 30。最低日前电价为281.67元/MWh,预计…

微服务docker部署实战

docker基础和进阶(*已掌握的可以跳过 *) 基础 docker基础 进阶 docker进阶 准备工作 提前准备好mysql和redis的配置,如下 在/zzq/mysql/conf目录下配置mysql配置文件my.cnf [client] #设置客户端字符集 default_character_setutf8 [mysqld] #开启定时任务 event_s…

Android组件通信——广播机制:BroadcastReceiver(二十九)

1. BroadcastReceiver 1.1 知识点 (1)掌握广播接收器的主要作用及基本实现; (2)可以使用广播启动Service; (3)理解闹钟服务的使用; 1.2 具体内容 广播这个名词大家…

BAT026:删除当前目录指定文件夹以外的文件夹

引言:编写批处理程序,实现删除当前目录指定文件夹以外的文件夹。 一、新建Windows批处理文件 参考博客: CSDNhttps://mp.csdn.net/mp_blog/creation/editor/132137544 二、写入批处理代码 1.右键新建的批处理文件,点击【编辑】…

vueday01——使用属性绑定+ref属性定位获取id

1.属性绑定&#xff08;Attribute 绑定&#xff09; 第一种写法 <div v-bind:id"refValue"> content </div> 第二种写法&#xff08;省略掉v-bind&#xff09; <div :id"refValue"> content </div> 2.代码展示 <template…

【论文阅读】 Cola-Dif; An explainable task-specific synthesis network

文章目录 CoLa-Diff: Conditional Latent Diffusion Model for Multi-modal MRI SynthesisAn Explainable Deep Framework: Towards Task-Specific Fusion for Multi-to-One MRI Synthesis CoLa-Diff: Conditional Latent Diffusion Model for Multi-modal MRI Synthesis 论文…

谈谈 RDB

谈谈 RDB RDB&#xff1a;相当于对内存中的数据&#xff0c;拍一张数据快照。RDB文件存储的是二进制数据。 这里提一点&#xff0c;Redis 的快照是全量快照&#xff0c;也就是说每次执行快照&#xff0c;都是把内存中的「所有数据」都记录到磁盘中。 所以可以认为&#xff0c;执…

在 Windows Server RDS 服务器 上重置 120 天宽限期

如果您出于测试目的安装了 RDS Server 2016/2019/2022&#xff0c;并且 RDS 许可宽限期已过期&#xff0c;请继续阅读下面的内容以了解如何重置 120 天宽限期。您可能知道&#xff0c;在安装 RDS Server 2016 时&#xff0c;您有 120 天的时间来安装 RD 客户端访问许可证 &…

数据结构--堆

一. 堆 1. 堆的概念 堆&#xff08;heap&#xff09;&#xff1a;一种有特殊用途的数据结构——用来在一组变化频繁&#xff08;发生增删查改的频率较高&#xff09;的数据集中查找最值。 堆在物理层面上&#xff0c;表现为一组连续的数组区间&#xff1a;long[] array &…

【LeetCode】29. 两数相除

1 问题 给你两个整数&#xff0c;被除数 dividend 和除数 divisor。将两数相除&#xff0c;要求 不使用 乘法、除法和取余运算。 整数除法应该向零截断&#xff0c;也就是截去&#xff08;truncate&#xff09;其小数部分。例如&#xff0c;8.345 将被截断为 8 &#xff0c;-…

ubuntu 18.04 LTS交叉编译opencv 3.4.16并编译工程[全记录]

一、下载并解压opencv 3.4.16源码 https://opencv.org/releases/ 放到home路径下的Exe文件夹&#xff08;专门放用户安装的软件&#xff09;中&#xff0c;其中build是后期自建的 为了版本控制&#xff0c;保留了3.4.16&#xff0c;并增加了-gcc-arm 二、安装cmake和cmake-g…

nodejs基于vue网上考勤系统

本网上考勤系统是针对目前考勤的实际需求&#xff0c; 采用计算机系统来管理信息&#xff0c;取代人工管理模式&#xff0c;查询便利&#xff0c;信息准确率高&#xff0c;节省了开支&#xff0c;提高了工作的效率。 本网上考勤系统主要包括个人中心、员工请假管理、员工考勤管…

哈希表简介

基本介绍 思路分析 代码实现 # 哈希表 # 员工信息 class Emp:id: int 0name: str next Nonedef __init__(self, id, name):self.id idself.name namedef __str__(self):return f"id{self.id}, name{self.name}"class EmpLinkedList:# 头指针&#xff0c;指向第…

jenkins整合gerrit

背景 公司项目之前使用jenkins整合了gitlab&#xff0c;后面代码迁移到gerrit&#xff0c;所以需要修改jenkins配置。下面就简单的介绍一下jenkins如何整合gerrit。 环境 服务器&#xff1a;linux 环境&#xff1a;docker、jenkins 代码仓库&#xff1a;gerrit 前提 docke…

Flink的ResourceManager详解(一)

ResourceManager 总结 一、概述 1、ResourceManager 管理 Flink 集群中的计算资源&#xff0c;计算资源主要来自 TaskManager 组件。 2、如果集群采用 Native【本地模式】部署&#xff0c;则 ResourceManager 会动态地向集群资源管理器申请 Container 并启动TaskManager&…

depcheck检查项目依赖的安装情况-帮你解决各种项目运行灵异事件

depcheck检查项目缺失的依赖 depcheck介绍与安装介绍安装 depcheck使用基础使用注意 进阶使用 删除多余的依赖注意 depcheck介绍与安装 介绍 工作中&#xff0c;以下的场景恐怕大家都有经历过&#xff1a; 从代码仓库上面 clone 的项目&#xff0c;自己本地一运行就报错… 用…