本文介绍: 在进行本地项目上传gitee时出现SSH密钥问题,利用AI协助解决

#[端午特别征文]探索技术极致,未来因你出“粽”#

前言

消失了将近一个月,预祝大家端午节快乐 这篇文章主要介绍下在上传本地项目gitee时出现的问题,以及借助AI解决问题

在这里插入图片描述

Gitee一个基于 Git代码托管和开发协作平台它提供了代码仓库代码审查、持续集成/持续部署 (CI/CD)、项目管理问题跟踪功能用户可以在 Gitee 上创建自己的代码仓库上传代码并与团队成员协作开发。

==Git Bash ==是一个基于 Git命令行工具,它允许用户在 Windows 操作系统使用 Git 命令行工具进行版本控制和开发工作Git Bash 提供了一些常用的 Git 命令shell 脚本,例如 git clonegit pushgit pullgit statusgit log 等。

总之,Gitee 是一个功能强大的代码托管和协作平台,而 Git Bash 则是一个方便易用的 Git 命令行工具,它们都可以帮助开发者更高效地管理和协作开发代码。(PS:文章前言由Chatgpt所写)

遇到问题——解决问题

今天使用Git Bash上传自己所写的一些项目时,发现了一些在平常使用时会遇到的问题结合搜索引擎和Chatgpt,最终解决了问题。以下是遇到问题使用的相关方法总结

需要了解

查看问题之前,我们需要了解一些基本知识

1:什么是SSH

SSH密钥是一种用于身份验证加密密码,它允许用户通过公钥私钥对进行安全通信

在SSH中,每个用户都有一对公钥私钥公钥可以与其他人共享以便他们可以通过该公钥访问您的计算机服务器。私钥则只能由您自己持有,并且必须保密。当您使用SSH连接到另一台计算机服务器时,您需要使用计算机或服务器上的公钥来进行身份验证

使用SSH密钥进行身份验证的主要优点是它们比传统的密码安全。此外,SSH密钥还提供了更高的安全性,因为它们需要进行数字签名才能验证其有效性。

总之,SSH密钥是一种非常安全身份验证方法,它可以帮助保护您的计算机或服务器免受未经授权访问

2:什么是id_sra.pub

**`id_rsa.pub` 和 `id_sra.pub` 都是 OpenSSH 公钥文件的一部分,它们分别用于在 SSH 连接和 SFTP 上传/下载中进行身份验证。**

具体来说,id_rsa.pub 是您的私钥的公钥,而 id_sra.pub 是您的 SSH 密钥关联的 SRA(Security Requirements Agent)的公钥。
SSH 密钥和 SRA 通常一起使用,以便在远程计算机上执行命令上传文件时进行身份验证。当您使用 SSH 连接远程计算机时,您需要提供您的私钥以进行身份验证。同样地,当您使用 SFTP 上传文件时,您需要提供您的 SSH 密钥和 SRA公钥以进行身份验证

因此,如果您在使用 SSH 或 SFTP 时遇到了问题,可能需要检查您的 id_rsa.pub 和 id_sra.pub文件是否正确配置并已添加到您的 SSH 客户端或 SFTP 客户端中。

ok,下面来看看都是哪些问题吧

SSH密钥问题

之前在使用Git Bash上传文件时,一直使用的是 HTTPS 来连接 Git Bash和Gitee仓库今天使用SSH时发现出现以下提示

在这里插入图片描述
然后查找资料,问题描述如下:

这个提示是因为 Gitee 无法验证您所提供的主机密钥。这可能是由于您第一次访问 Gitee 或您的 SSH 密钥未添加到 Gitee 中。

看到这个描述一个想到的肯定是我没有将我的SSH密钥添加到Gitee中,那么接下来就是解决如何将我的SSH密钥添加到Gitee中”

首先,在Gitee官网侧边栏中就有“密钥管理”:

在这里插入图片描述
在这里插入图片描述

注意到官方也给出了 “如何生成公钥”的提示,不妨点开看看
明白了官方的意思,肯定需要自己上手尝试一番(页面的左边栏有很多常见问题的解决手册,建议在使用无论哪个平台去完成任务时,都记得去看看官方文档,很有收获!)

这里提一句,没有将SSH密钥添加到Gitee中去尝试查看用户密钥,也就是 id_rsa.pub 文件时会返回“找不到”错误,如下:

在这里插入图片描述
看到这里,还是老老实实的添加密钥吧。

首先,在Git Bash命令行输入

$ ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"   //通过ed25519方式加密

注意:这里xxxxx@xxxxx.com 只是生成sshkey名称,并不约束或要求具体命名为某个邮箱
现网的大部分教程讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱

然后回车出现:

在这里插入图片描述
报错了,报错信息仍然是 XXX:command not found

仔细想一想,如果是和Git密钥相关的话,是不是需要进入bin文件夹下呢,但是我在输入该命令时的文件路径却是在我想提交项目文件夹里,那肯定不对呀,因此当前任务就是找到Git 的bin文件夹

转到Git的安装路径,找到bin然后在 E:Gitbin 路径下进行命令输入 :

$ ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"

在这里插入图片描述

OK,这样你就完成了密钥的生成了,还看到了你的密钥长啥样。

并且你会看到生成的存放密钥的文件,也就是我们之前提到的id_rsa.pub文件的路径在哪。

在这里插入图片描述

如果感兴趣的话,可以照着提示路径看一眼:

在这里插入图片描述
然后,我们需要查看密钥,输入:

$ cat ~/.ssh/id_rsa.pub

在这里插入图片描述

最后我们只需要将生成的密钥复制下来,然后粘贴到Gitee的SSH密钥管理处,进行密钥的添加复制粘贴时注意,一定要确保密钥的完整性和准确性,不要有空格
在这里插入图片描述

到此为止,SSH的密钥就添加完成啦,看一下是否可以正常连接

$ git remote add origin ssh地址

在这里插入图片描述

乍一看没有出现之前的报错,实际上密钥问题已经解决了,只是又来了一个错误,不过问题不大,接着看。

误上传一个包含.git的文件

出现上面的问题是因为我需要上传的文件路径写错啦,仔细看我正在进行上传的文件路径是怎样的?

在这里插入图片描述
我需要上传的路径需要包含.git,但是显然newpub里面并不包含而.git文件在new-pub文件中:

在这里插入图片描述

而我需要上传的文件都在new-pub里面路径改回来即可

$ cd new-pub

然后将代码上传至远程分支

git push -u origin "master"

在这里插入图片描述

现在来看一下Gitee这边有没有显示我上传的文件:

在这里插入图片描述
OK,上传完毕。

如何更新仓库中的项目文件

当我需要新上传一些项目文件去原有仓库时应该如何做:

Git Bash中输入以下代码:

git pull origin master    //用于远程 Git 仓库中获取pull)最新的代码更新合并merge)到本地分支 master

在这里插入图片描述

接着:

git add .  //会将当前工作区中当前目录(包括子目录)下的所有新文件和对已有文件的改动提交暂存区,但不包括被删除的文件。
git commit -m "需要上传的新的项目文件名"    //将暂存区里的改动提交本地版本

在这里插入图片描述

上传完毕就可以在Gitee上查看更新后的仓库啦。

接着上面的问题,我又再new-pub中新增了一个文件夹,然后尝试着用

git commit -m "file_name"

进行提交发现出现了一个提示

在这里插入图片描述

这个输出表示当前的分支(master)比远程仓库的 master 分支领先一个提交(commit)。这通常发生在本地进行了一些更改,但还没有将这些更改推送远程仓库。

如果想要将本地更改推送远程仓库,运行以下命令:

git push origin master

这将会将本地 master 分支推送远程仓库的 master 分支。需要先将本地分支切换到 master 分支才能执行此命令。如果已经切换到了 master 分支,则可以直接运行该命令。

运行结果如下:
在这里插入图片描述
此时新增项目文件夹上传完毕。

总结

问题解决总结

  1. Gitee 是一个基于 Git 的代码托管和开发协作平台,它提供了代码仓库、代码审查、持续集成/持续部署 (CI/CD)、项目管理、问题跟踪功能

  2. Git Bash 是一个基于 Git 的命令行工具,它允许用户在 Windows 操作系统上使用 Git 命令行工具进行版本控制和开发工作

  3. 执行 Git 命令时出现 “fatal: not a git repository (or any of the parent directories): .git” 错误通常表示您正在尝试在不是一个 Git 仓库的目录执行 Git 命令。

您可能没有正确目录执行 Git 命令。请确保您正在正确的 Git 仓库目录中执行 Git 命令。如果您正在子目录中,请切换到父目录并再次运行 Git 命令。
您可能没有初始化 Git 仓库。在某些情况下,您需要先使用 git init 命令初始化一个 Git 仓库。例如,如果您想将当前目录转换为 Git 仓库,请运行以下命令:
然后,您可以继续使用 Git 命令。
您可能已经删除了本地 Git 仓库。如果您已经删除了本地 Git 仓库,则无法在当前目录中找到它。请确保您已经在正确的目录中执行 Git 命令,并且已经初始化了一个 Git 仓库。
您可能没有添加文件到 Git 仓库中。如果您还没有将文件添加到 Git 仓库中,则无法执行任何版本控制操作。请使用 git add 命令将文件添加到 Git 仓库中,然后使用 git commit 命令提交更改
如果以上解决方法都无法解决您的问题,请检查您的操作系统设置权限,以确保您有足够的访问权限来执行 Git 命令。

  1. 如果当前目录不是一个 Git 仓库,请运行以下命令进行检查: git status用于显示工作目录和暂存区状态

  2. 如果您需要将本地更改推送到远程仓库,请运行以下命令: git push origin master。请注意,您需要先将本地分支切换到 master 分支才能执行此命令。
    ps:Chatgpt所写总结

我们可以看到,掌握科技时代的机遇,让AI成为我们的助手,做事效率会大大提高!但是要记住,打败你的永远都不会是AI,而是率先掌握AI的人!

星光不负赶路人,加油!

原文地址:https://blog.csdn.net/weixin_64122448/article/details/131331316

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_12019.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注