使用 SSH 密钥登录在 Git Bash 上不起作用,但在 Windows 命令提示符中起作用 [关闭]

Posted

技术标签:

【中文标题】使用 SSH 密钥登录在 Git Bash 上不起作用,但在 Windows 命令提示符中起作用 [关闭]【英文标题】:Logging in with an SSH key doesn't work on Git Bash but does in Windows Command Prompt [closed] 【发布时间】:2019-01-13 14:08:24 【问题描述】:

我正在关注this tutorial 来设置我的第一个 DigitalOcean droplet,并且我刚刚生成了一个用于公钥身份验证的密钥对。使用ssh-copy-id(来自 Git Bash,因为命令在命令提示符中不可用)将密钥添加到我的 Droplet 后,我​​可以从命令提示符通过 SSH 连接到我的 droplet。

但是,当我尝试从 Git Bash 进行 SSH 连接时,它仍然提示我输入密码!我已经检查过了,SSH 密钥存在于我的 Droplet 和我的计算机上。有什么问题?

【问题讨论】:

我不相信 Git Bash 会自动加载私钥,除非您通过 SSH 将其放在预定义的路径上。您是否尝试过手动将密钥添加到代理? @PraveenP 不,我该怎么做?预定义的路径是什么? 【参考方案1】:

你可以通过运行ssh-add path-to-private-key来加载密钥

ssh-add /Users/ben/id_rsa

预定义路径为UserHome -> .ssh -> private-key & public-key

/c/Users/USERNAME/.ssh/id_rsa
/c/Users/USERNAME/.ssh/id_rsa.pub

文件名和位置都有限制。以下是 SSH 代理将寻找的已知文件名,我能想到:

身份 id_dsa id_rsa

这些名称通常由您用来生成它们的类型决定。最常用的是 rsa,它创建 id_rsaid_rsa.pub

此外,大多数 Windows 用户使用Putty 作为 SSH 守护程序。它工作得很好。最好的一点是它有 GUI 来设置特定的私钥,因此它每次都加载它而无需执行上述任何操作。

【讨论】:

每当我在 Git Bash 中运行 ssh-add 时,它都会打印以下消息:Could not open a connection to your authentication agent. 哦,那是因为您没有“活动代理”,您需要先运行eval `ssh-agent`,它会打印出类似 Agent pid 21561 的内容。然后您可以运行其余的命令。如果这不起作用,请尝试使用 eval $(ssh-agent)。也就是Linux一个,上面一个是Unix(MacOSX)

以上是关于使用 SSH 密钥登录在 Git Bash 上不起作用,但在 Windows 命令提示符中起作用 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

为啥 npm install 在 git bash 上不起作用

在 git bash 中生成 SSH 密钥,我无法获取 git 代理

如何将已生成的 SSH 密钥添加到 git bash?

ssh 密钥登录在 Ubuntu 和 CentOS 7 中都不起作用

Git Bash 和 Pageant 没有使用密钥

设置ssh免密不起作用?彻底搞懂密钥vscode在remote SSH免密远程登录