【问题标题】:How do I use the right key for SSH, connecting from Git Bash on Windows to remote server?如何使用正确的 SSH 密钥,从 Windows 上的 Git Bash 连接到远程服务器?
【发布时间】:2017-11-06 02:31:00
【问题描述】:

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

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

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

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

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

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

如果我在 Git Bash 中尝试“ssh notacop@mafiauniversedata.com”,我也会收到“Permission denied (publickey)”响应。所以看起来这个问题与 Git Bash 使用的公钥有关,因为它根本无法连接。

我的用户/.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-keygen 和 ssh-copy-id. 之类的命令
  • PuTTY 私钥与 OpenSSH 密钥的格式不同,您是将其导出到您的user/.ssh 目录,还是只是将 PuTTY 私钥复制进去?

标签: linux git bash github ssh


【解决方案1】:

我不知道为什么 Git Bash 自己的 ssh 似乎不适合你, 但我有一个更好的建议:通过将GIT_SSH 环境变量设置为plink.exe 的路径,让Git Bash 使用PuTTY(这不是错字,不是putty.exe,而是PuTTY zip 附带的另一个可执行文件工具)。

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

【讨论】:

    猜你喜欢
    • 2012-11-26
    • 1970-01-01
    • 2022-07-11
    • 2018-08-02
    • 2020-12-31
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    相关资源
    最近更新 更多