linux - 如何使用正确的 SSH key 从 Windows 上的 Git Bash 连接到远程服务器?

标签 linux git bash github ssh

我正在尝试将我在 git 上的项目从我的本地 Windows PC 推送到我的远程 Linux 服务器。

当我使用 PuTTY 时,通过 SSH 连接到我的服务器没有任何问题。但 PuTTY 仅适用于远程服务器,不允许我查看我自己的本地电脑 - 所以我无法访问我的 git 存储库以从中推送。

相反,我一直在尝试使用 Git Bash,在那里我转到我的 git 项目的存储库(master),然后尝试“git push production master”。在 Git Bash 中收到“权限被拒绝(公钥)”作为响应。

我已经使用 PuTTYgen 从本地 pc 上的 user/.ssh 文件夹中通过私钥加载,将它显示的公钥复制/粘贴到我的 Github 帐户的 SSH key 中。 这与我用于连接 PuTTY(有效)的 key 相同。

如果我在 Git Bash 中使用“git remote -v”,我会收到服务器的正确 url: “ 生产 ssh://notacop@mafiauniversedata.com/var/repo/site.git(获取) 生产 ssh://notacop@mafiauniversedata.com/var/repo/site.git(推送) "

“notacop”是我创建的管理员用户而不是 root,这也是我在 PuTTY 中使用的用户。

如果我在 Git Bash 中尝试“ssh notacop@mafiauniversedata.com”,我也会收到“权限被拒绝(公钥)”响应。因此,问题似乎与 Git Bash 使用的公钥有关,因为它根本无法连接。

我的 user/.ssh 文件夹包含: digitalocean_private_key(PuTTY 使用的/PuTTYgen 生成的)+ digitalocean_public_key

github_rsa + github_rsa.pub

id_rsa + id_rsa.pub

已知主机


我觉得我已经按照一般指南设置了一些东西,而且它在 PuTTY 中确实有效,所以这个问题一定与 Git Bash 以及 Git Bash 如何建立 ssh 连接有关。

但是我对如何解决这个问题一无所知,一直无法通过搜索找到解决方案。我的猜测是它相当简单,但我已经坚持了几个星期了,因此一无所获。

任何能引导我走向正确方向的答案都将不胜感激! 如果我的问题有任何不清楚的地方,或者您需要更多信息来回答,请告诉我。

最佳答案

我不知道为什么 Git Bash 自带的 ssh 似乎对你不起作用, 但我有一个更好的建议:让 Git Bash 使用 PuTTY,方法是将 GIT_SSH 环境变量设置为 plink.exe 的路径(这不是拼写错误,它不是 putty.exe,但 PuTTY 工具的 zip 附带的另一个可执行文件)。

这样做的主要优势和原因是 Git Bash 可以从 PuTTY 的 key 管理器 pagent.exe 中获益。 这样您就可以输入一次密码, 将您的私钥添加到 Paget 时, 然后你就不需要每次在 Git Bash 中执行远程操作时都重新输入。

关于linux - 如何使用正确的 SSH key 从 Windows 上的 Git Bash 连接到远程服务器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44366873/

相关文章:

linux - 4 行在包含许多文件的目录中反转 grep 搜索

linux - 寻找独特的线条

java - 如何写入分区/数据文件?

git - 不能 "git push"。 "Heroku Git error"4 天了

linux - 如何删除 bash 文件中的双引号。(Linux)

linux - 删除共享对象中对另一个共享对象的引用

Git:存储但不提取 LESS 文件

git - 获取远程 git 存储库上的文件/文件树列表

bash - 如何在基于 echo 的输出中填充一定宽度的空间

html - 在 Mac 上使用 Bash 使用默认浏览器打开 .html 文件