使用 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_rsa 和 id_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 代理