从SSH远程到Git Push:在Windows上一步到位实现免密码登录

前言

我一直希望在Windows上能像在Linux系统中那样,通过SSH密钥实现免密码远程连接。每次远程连接到服务器时,手动输入密码既麻烦又不太安全,尤其是在我需要频繁操作的情况下。

之前的文章中已经解决了 SSH 登录的问题: 在 Windows 10 上实现免密码 SSH 登录

Windows的SSH支持

回顾一下

Windows自带了一个名为 OpenSSH Authentication Agent 的服务,这个服务能够管理SSH密钥,这意味着我无需额外安装任何第三方工具,就能轻松设置SSH免密码登录。

按照网上的教程,我简单地启动了 OpenSSH Authentication Agent 服务,设置好SSH密钥后,就可以 ssh 免密码连接到服务器了。

Git Push遇到问题

然而,当我尝试通过Git进行 git push 操作时,却仍然被要求输入密码。

明明已经配置好了SSH密钥,为什么Git操作时还是要求输入密码?

显然,仅仅启动OpenSSH服务并没有解决问题。于是,我决定深入分析这个问题的原因,看看是否还有什么地方需要调整。

使用Git Bash测试

为了进一步排查问题,我决定在 Git Bash 中测试一下。

Git Bash是用来执行Git命令的工具,因此我在Git Bash中运行了 ssh-add -l 命令,想确认是否正确加载了我的SSH密钥。结果发现,Git Bash中的 ssh-agent 并没有启动!

这时我突然意识到,Git Bash和Windows自带的SSH工具似乎并不完全兼容,Git并没有默认使用Windows的SSH工具。

Git使用了自己的SSH工具

接下来,我进一步探讨了这个问题。

我了解到,Git实际上有自己的SSH工具,而并不会默认使用Windows系统中的OpenSSH工具。

Git自带的工具和Windows自带的工具是不同的,因此,即使在Windows中配置了OpenSSH Authentication Agent服务,Git也不会自动使用它。

配置Git使用Windows默认SSH工具

既然Git没有使用Windows自带的SSH工具,那就需要手动配置它。我通过执行以下命令告诉Git使用Windows的默认SSH工具:

bash 复制代码
git config --global core.sshCommand "C:/Windows/System32/OpenSSH/ssh.exe"

这条命令的作用是,让Git在进行操作时,使用Windows系统中的 ssh.exe 来处理SSH连接,而不是使用Git自带的工具。配置完成后,我再次尝试 git push 操作。

全部搞定

这次,当我运行 git push 时,一切都顺利进行,没有再提示我输入密码。通过这种方式,我成功地将Git操作与Windows的SSH配置结合起来,实现了免密码登录。现在,无论是进行远程服务器的SSH连接,还是使用Git进行版本控制,我都不再需要每次输入密码。

相关推荐
Qiuner2 小时前
Pico 重塑Agent时代人与数据交互方式
windows·docker·ai·架构
FL16238631293 小时前
Windows x64 系统安装 ChromeDriver
windows
百事牛科技4 小时前
两种方法锁定 PDF,拒绝内容被随意篡改
windows·pdf
云樱梦海8 小时前
OpenClaw官方:OpenClaw Windows Node 实战(1.5K ★ 开源推荐)
windows·开源·github·openclaw
深度学习040710 小时前
SVN 独立服务端部署与客户端使用指南(CentOS/Rocky 9.5 + Windows)
windows·svn
爱分享软件的学长10 小时前
Tiled Map Editor 1.12.1 官方版下载(夸克网盘+百度网盘,SHA256校验)
windows·开源软件·软件下载
Dream-Y.ocean10 小时前
鸿蒙PC平台 Carnac 按键显示适配实战:从 Windows 到 HarmonyOS 的 Electron 迁移指南
windows·electron·harmonyos
拾贰_C10 小时前
【mysql | windows | installation】 MySQL5.安装
数据库·windows·mysql
shandianchengzi12 小时前
【记录】Claude Code|Windows11给Claude Code新增任务消息提示音
windows·ai·音频·claude·claude code
瑞雪兆丰年兮14 小时前
[从0开始学Java|第二十五天]项目阶段(综合练习&斗地主小游戏)
java·windows