网站首页 > 博客文章 正文
今天在配置使用SSH 协议使用Git 的时候, 发现Windows 下执行ssh-agent 总是执行失败, 于是研究了一下, 把正确步骤记录下来, 防止忘记的同时,也方便其他人遇到这个问题时能快速解决。
一、 基本Git 配置
在配置Git 时候, 第一步就是要配置用户名和邮箱, 这一点非常重要, 因为这关系着你提交代码时候, 在Github 或者Gitlab 上面显示的名字。 尤其是在使用Github 的时候, 有些人因为既有公司的Git 仓库,也有个人的Git 仓库, 名字设置很随意的话, 容易在代码Review 的时候尴尬不已。
语句:
git config --global user.name "Your Name"
git config --global user.email "your.email@address"
这里面,我们记得要配置好自己的名字, 如果是在WSL 或者DevContainer中搞开发, 这个语句也要执行一下。
在设置完之后,不妨使用下面的语句来检验一下:
git config --get user.name
git config --get user.email
执行结果:
二、为Git 客户端正确配置SSH 协议
从Git仓库中下载代码, 可以使用HTTPS 或者SSH, 我本人比较喜欢SSH , 因为都是可以通过命令行来操作, 不需要再打开浏览器进行验证等。 如果使用HTTPS, 可以配置Git Credential Manager。
在这里,以SSH 为例。
首先要产生SSH 私钥/公钥, 这个只要执行语句:
ssh-keygen -t ed25519 -C "your_email@example.com"
这里注意, 最佳实践是, 一定要给私钥设置密码, 哪怕是特别简单的“123456”, 也会增强安全性。
密钥产生之后, 会产生两个文件,带.pub的是公钥, 一般需要放到Github 等SSH的服务器端。
可以使用 ssh -T 来验证到Github 的连接:
ssh -T git@github.com
配置SSH-Agent
下面,就要启动SSH-Agent ,把私钥添加到Agent 里面。
SSH-Agent 是什么呢? 实际上就是一个常驻内存的程序(占用内存非常少,所以不用担心), 当我们把我们的ssh 私钥交给ssh-agent 之后,以后每次和Github 交互,都是有SSH-Agent 为我们通信,交换密钥并建立SSH 连接, 如图所示:
首先,我们来看看我们个人目录下有那些key。
ls ~/.ssh
我这里配置了Github 和Gitee, 其中Github的密钥是id_ed25519, 其实Github 和Gitee完全可以使用同一个密钥。
但是我在Win11 下第一次执行操作的时候, 却遇到了错误:
ssh-add $HOME\.ssh\id_ed25519
错误信息:
这是SSH-Agent 服务没有启动吗? 检查一下:
Set-Service ssh-agent -StartupType Automatic
结果是, ssh-agent 的权限问题。
先来安装一下SSH-Agent:
Get-Service ssh-agent
这个执行的很快,
查看下SSH-Agent的启动情况:
Get-Service ssh-agent | Select StartType
没有启动, 哇哇哇:
启动出错:
Get-Service -Name ssh-agent | Set-Service -StartupType Manual
结果是权限问题:
反思一下,应该是我启动的PowerShell没有使用“管理员权限启动”, 新建一个PowerShell,用管理员权限:
这次设置成功了。 从命令行窗口的左上角也可以看出, 通过管理员权限启动的PowerShell, 窗口名称前面有“管理员”前缀。
OK, 下面可以愉快的添加SSH Key 了:
另外一种设置SSH-Agent服务的方法是, 使用Windows 的服务窗口,找到OpenSSH,然后设置自动启动即可:
现在, 我们已经完整的在Windows下配置好了通过SSH 协议的Git 客户端。
但是, 如果我们想在Windows下的WSL 里面配置开发环境, SSH 密钥又该如何配置呢?
猜你喜欢
- 2024-10-10 Nutch-Hadoop-MongoDB搭建分布式爬虫
- 2024-10-10 OpenSSH更新至8.0,修复存在35年的安全漏洞
- 2024-10-10 [python] 基于paramiko库操作远程服务器
- 2024-10-10 利用Zabbix监控系统SSH方式检测远程目标主机
- 2024-10-10 手工方式IPSec VPN配置保障单位与分支之间的数据安全
- 2024-10-10 SSH 简介:安全远程访问的利器(安全远程登录协议ssh)
- 2024-10-10 [ Laravel 5.6 文档 ] 快速入门 —— 重量级开发环境:Homestead
- 2024-10-10 快速上手:Docker环境下的WordPress安装全攻略
- 2024-10-10 阿里云服务器Centos7.3安装Git(阿里云服务器centos装桌面)
- 2024-10-10 如何使用ssh密钥登录远程服务器(如何使用ssh密钥登录远程服务器账号)
你 发表评论:
欢迎- 367℃用AI Agent治理微服务的复杂性问题|QCon
- 358℃初次使用IntelliJ IDEA新建Maven项目
- 356℃手把手教程「JavaWeb」优雅的SpringMvc+Mybatis整合之路
- 351℃Maven技术方案最全手册(mavena)
- 348℃安利Touch Bar 专属应用,让闲置的Touch Bar活跃起来!
- 346℃InfoQ 2024 年趋势报告:架构篇(infoq+2024+年趋势报告:架构篇分析)
- 345℃IntelliJ IDEA 2018版本和2022版本创建 Maven 项目对比
- 342℃从头搭建 IntelliJ IDEA 环境(intellij idea建包)
- 最近发表
- 标签列表
-
- powershellfor (55)
- messagesource (56)
- aspose.pdf破解版 (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- vue数组concat (56)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)