如何配置 VS Code 实现 git 密码免输入

目录

  • 问题描述
  • 尝试过的失败方法
  • 问题分析
  • 最终采用的解决方案:利用 ssh key 提供密码免输入功能
    • 安装 git windows 命令工具
    • 在windows本地生成 ssh key
    • 将公钥安装到 git 服务器
      • 第一种方法
      • 第二种方法
      • 调试方法
  • 参考资料:

问题描述

在 Windows 上,使用 Visual Studio Code 开发 typescript 项目,提交 git 代码总是会要求输入密码。
希望能像 IDEA 那样让 git 记住密码,不要每次都重新输入。

尝试过的失败方法

  1. 网上有人说可以用 git config --global credential.helper store,但测试了不行,因为我的 git 服务是 ssh 协议。
  2. 企图使用 ssh-agent 来解决问题,但其实可以不用 ssh-agent 参与也能解决问题。因为 ssh-agent 只是帮助提供 ssh key 的 passphrase
    什么是 ssh-agentssh key 以及 passphrase,请看这里。简单解释就是 ssh key 指的是‘非对称加密算法’中的一对字符串,一般比较长所以存放在文件中,分为私钥(private key)和公钥(public key),用公钥加密、私钥解密。要使用这个私钥(private key)时,为了安全起见,会再加一个简短的密码,要求用户手工输入,这个简短的密码就叫做passphrase (口令)
  3. 查找 VSCode 的 git 插件,企图让 VSCode 像 IDEA 那样记住 git 密码,但没有找到可用的插件。

问题分析

有一个很重要的考虑因素是你的 git 服务所提供的访问协议。常见的 git 服务协议大体有以下几类:

  1. ssh 协议
  2. git 协议
  3. https 协议
  4. git 管理系统,如 github、gitlab 等。

因为 ssh 协议简单,所以我目前采用的是这种协议,如果你的协议不是 ssh,那么下面的解决方案就只能提供参考了,不一定对症。

最终采用的解决方案:利用 ssh key 提供密码免输入功能

如果 git 的协议是 ssh,那么需要用 ssh key 方式访问 git 服务器,这样就可以避免每次提交/拉取时输入密码了,具体方法如下。

安装 git windows 命令工具

从这里下载并安装好 git windows 命令工具。git 命令行工具是一组命令程序的集合,而不只是一个简单的 exe 文件。包括 git.exe、ssh-add.exe 等 git 和 ssh 相关工具。

在windows本地生成 ssh key

生成的命令是:

ssh-keygen -o

-o 参数表示使用新的秘钥格式,而不是旧格式,更安全些。它会生成 rsa 私钥/公钥 对。
秘钥路径不要修改,就放在默认路径下,即c:\Users\[用户名]\.ssh\ 中。
成功后,会看到下面2个文件:
在这里插入图片描述

将公钥安装到 git 服务器

这一步是将你的公钥注册到 git 服务器,以便 git 服务器允许你连接、访问,通常问题就出现在这一步。
有两种方法实现公钥注册工作。

不管哪种方法,核心都是将公钥文件的内容复制、写入到服务器上 git 用户的一个文件中。
假设 Linux 服务器上,git程序的用户名是 gits,那么这个文件的路径就是 /home/gits/.ssh/authorized_keys
内容是一个公钥占一行,像下面这样:

公钥1
公钥2

只要将公钥内容放入这个指定文件,并设置好目录 .ssh/ 和文件 authorized_keys 的权限,最好设置为 600700不需要重启 sshd 等任何额外操作,就能生效了。如果有问题,也是其他问题,和 sshd 服务基本没有关系。

下面介绍两种注册公钥到git服务器的方法。

第一种方法

使用ssh-copy-id命令。

ssh-copy-id gits@gits.yourdomain.com

这里的 gits 是用户名,服务器域名是 gits.yourdomain.com。替换成你实际的用户名和域名即可,注意是能用ssh登录服务器的git系统用户名,不是所谓 git 管理系统的用户名。
然后输入gits用户的密码,程序会自动将当前windows本地用户的公钥写入到服务器的 authorized_keys 文件中。但这种方法只会写入 rsa 公钥,如果你还有其他公钥,它是不会写入的,需要你自己手工写入,这点需要注意。我也是在这里折腾了很长时间。

在这里插入图片描述

第二种方法

手工复制公钥文件的内容,然后登录 git 服务器,修改 /home/gits/.ssh/authorized_keys 文件,粘贴进公钥内容即可。

注意有多个公钥文件(.pub)文件时,要全部写入,如果有遗漏那么可能登录失败,因为 ssh 可能用的就是你遗漏的那个公钥。我就是在这里折腾了很久,最后发现 git 使用的是 id_ed25519.pub 而不是新版的 rsa.pub 公钥。

调试方法

按照上面的步骤配置后,如果用 git pull 等命令时还是要求输入密码,那么可以用 xshell 等工具进行除错,查找问题原因。

方法是先确保用 ssh 可以无密码登录、连接 git 服务器。如果能达成这一步,那么就没问题了。

并且要注意,有多个公钥,那么多个公钥都需要测试成功,因为 git 指不定使用哪个公钥。

添加ssh key访问 git 服务器的 xshell 配置如下。
在这里插入图片描述

参考资料:

  • ssh-agent 文档 清晰明了地解释了ssh-agent的作用,可以一读。
  • ssh agent详解,知乎文章,没点出 ssh-agent 的作用主要是管理 passphrase,不是必须的。
  • vscode 中用 ssh 协议访问 git,使用 ssh key 方式访问 git 服务的方法,但讲得不够清楚。
  • 用ssh访问git,git 官方文档,讲得过于简单。
  • ssh-copy-id 文档

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

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

相关文章

SSM在线员工订餐网站平台----计算机毕业设计

项目介绍 本项目分为前后台,前台为普通用户登录,后台为管理员登录; 用户角色包含以下功能: 用户登录与注册,查看首页,查看菜品详情,查看购物车,提交订单,查看订单,修改个人信息等功能。 管理员角色包含以下功能: 管…

python中parsel模块的css解析

一、爬虫页面分类 1.想要爬取的内容全部在标签中,可以使用xpath去进行解析如下图 2.想要爬取的内容呈现json的数据特征,用.json()转换为字典格式 3.页面不规则,标签中包含大括号,如下面想要获取键值内容怎么做,先用re正…

数据分析师的转型之路—本人真实经历

数据分析师的转型之路 前提 本篇文章讲的内容主要针对非计算机专业,数学专业(含统计学),数据类专业的大学生或研究生想转行或了解数据分析师的朋友们。因为计算机或数学专业算是专业对口,对数据分析这个岗位应该是比较…

Supershell反溯源配置

简介 项目地址:https://github.com/tdragon6/Supershell Supershell是一个集成了reverse_ssh服务的WEB管理平台,使用docker一键部署(快速构建),支持团队协作进行C2远程控制,通过在目标主机上建立反向SSH隧…

250:vue+openlayers 加载geotiff文件,并在地图上显示

第250个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中加载geotiff文件,并在地图上显示。这里使用到了WebGLTile图层和GeoTIFF脚本模块。这里一定要注意GeoTIFF的数据加载方式,要数组的模式。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现…

SpringCloud微服务 【实用篇】| Dockerfile自定义镜像、DockerCompose

目录 一:Dockerfile自定义镜像 1. 镜像结构 2. Dockerfile语法 3. 构建Java项目 二: Docker-Compose 1. 初识DockerCompose 2. 部署微服务集群 前些天突然发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,…

RedisInsight - Redis官方可视化工具

一、RedisInsight 简介 RedisInsight 是一个直观高效的 Redis GUI 管理工具,它可以对 Redis 的内存、连接数、命中率以及正常运行时间进行监控,并且可以在界面上使用 CLI 和连接的 Redis 进行交互(RedisInsight 内置对 Redis 模块支持&#…

UE5 给自己的数字人重定向Mixamo动画

1 、准备动画骨格文件,动画文件,下面是Mixamo动画素材下载网站Mixamo动画骨格文件下载网站https://www.mixamo.com/2、下载动画骨格文件,打Mixamo网站,选择Characters骨格菜单,在下面找到对应的骨格。如下图所示&#…

在Ubuntu22.04上离线部署Tailchat(一)

一:Tailchat介绍 Tailchat 是一款插件化易拓展的开源 IM 应用。可拓展架构赋予 Tailchat 无限可能性。前端微内核架构 后端微服务架构 使得 Tailchat 能够驾驭任何定制化/私有化的场景,是面向企业与私域用户打造,高度自由的群组管理与定制化…

csdn中的资源文件如何删除?

csdn中的资源文件如何删除? 然后写文章的时候 点击资源绑定,解锁资源,就可以再次上传。

玫瑰之国保加利亚与葡萄酒的碰撞

玫瑰之国保加利亚与葡萄酒的碰撞 一、玫瑰与葡萄美酒 提起保加利亚,大家第一个想到的可能就是玫瑰花,没错,保加利亚就是被誉为“上帝后花园”的玫瑰之国,每年从这里出产的玫瑰与玫瑰精油,可以说受到了全球消费者的喜爱…

idea将本地编译好的代码上传到hub镜像仓库

第一步:编译打包本地的文件 package 第二步:执行docker bulid打包命令 docker build -t sunyuhua/algo-ability:1.0.0 .sunyuhuasunyuhua-HKF-WXX:~/workspace/shbgit/algo-ability$ docker build -t sunyuhua/algo-ability:1.0.0 . [] Building 141.…

I.MX6ULL开发笔记(三)——挂载NFS网络文件系统

0x01 网络文件系统 当我们在编译一个文件时,正常是在一个pc上编译好一个文件,之后丢到开发板上去运行。如果有了NFS网络文件系统,那么我们就可以在PC以及开发板上共享文件了。 网络文件系统,常被称为NFS(Network Fil…

操作系统期末复习知识点

目录 一.概论 1.操作系统的介绍 2.特性 3.主要功能 4.作用 二.进程的描述与控制 1.进程的定义 2.特性 3.进程的创建步骤 4.基本状态转化 5.PCB的作用 6.进程与线程的比较 三.进程同步 1.同步的概念(挺重要的) 2.临界区 3.管程和进程的区…

python中抓取小米应用商城xpath实例

页面源码: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <title>手机游戏应用商店_软件商店app下载-小米应用商店</title> <…

网络通信(10)-C#TCP客户端实例

本文使用Socket在C#语言环境下完成TCP客户端的实例。 实例完成的功能: 客户端与服务器连接,实现实时刷新状态。 客户端接收服务器的数据。 客户端发送给服务器的数据。 客户端实时判定状态,断开连接后自动重连。 客户端与服务器端发送心跳包。 在VS中创建C# Winform项…

web期末个人引导页透明版

效果图 代码 css代码 * {box-sizing: border-box; }body {color: #2b2c48;font-family: "Jost", sans-serif;background-image: url(../img/bg.jpg);background-repeat: no-repeat;background-size: cover;background-position: center;background-attachment: fix…

计算机环境安全

操作系统安全----比如windows,linux 安全标识--实体唯一性 windows---主体&#xff1a;账户&#xff0c;计算机&#xff0c;服务 安全标识符SID-Security Identifier 普通用户SID是1000&#xff0c;管理用SID是500 linux---主体&#xff1a;用户&#xff0c;用户组&#xf…

Linux基础——进程地址空间

1. 地址空间的验证 之前我们在学习语言时&#xff0c;曾知道有下面这张图 对于这个图我们可以用下面的代码验证 运行后我们可以发现 其对应关系如下 我们使用fork函数&#xff0c;来分别对父子进程中的g_val进行修改&#xff0c;即 运行后我们可以发现 在子进程修改了g_val后…

凸优化 3:最优化方法

凸优化 3&#xff1a;最优化方法 最优化方法适用场景对比费马引理一阶优化算法梯度下降最速下降 二阶优化算法牛顿法Hessian矩阵Hessian矩阵的逆Hessian矩阵和梯度的区别牛顿法和梯度下降法的区别 拟牛顿法DFP、BFGS/L-BFGS 数值优化算法坐标下降法SMO算法 基于导数的函数优化解…