为什么在MobaXterm上ssh-add失败:是权限问题吗?

3
我正在尝试使用ssh(根据此指南)将我的Windows 11 PC连接到Github帐户。我在MobaXterm中使用cygwin,并且以前已经成功地在Windows 7机器上完成了该过程。这次问题出现在尝试使用ssh-add添加私钥时,它会产生错误Could not add identity "/home/mobaxterm/.ssh/id_ed25519": agent refused operation。我确定代理正在运行。

以前的问题已经确定文件权限过于宽松是导致此错误的原因之一。我已将持久主目录设置为C驱动器上的一个文件夹,并在该目录中授予.ssh权限700和id_ed25519文件权限600(并检查它们是否已应用)。然而,ls -la /home/mobaxterm/.ssh显示id_ed25519的权限为644。我不明白权限为何会不同,因为我认为/home/mobaxterm只是一个符号链接:如果我删除或添加目录中的文件,则在/home/mobaxterm中反映更改。在/home/mobaxterm上直接运行chmod没有效果。

如果能得到帮助,我将非常感激,因为目前我无法将文件推送到我的GitHub!

2个回答

4

使用MobaXterm连接SSH并使用私钥有两种选项:

  1. 本地终端
  2. SSH会话

先决条件

对于这两个选项,您需要将您的PPK格式的私钥添加到PageAnt(随Putty一起安装),并在MobaXterm SSH设置中指定您的Use external Pageantenter image description here 请参考此指南的步骤1,了解如何将密钥添加到PageAnt。

请注意,PageAnt仅接受PPK格式的密钥,因此您可能需要将您的密钥对转换为该格式。 您可以使用PuttyGen进行转换(请参见SO讨论此处

选项1 - 本地终端

  • 启动本地终端并注意您的当前文件夹是/home/mobaxterm

  • 在您的Windows个人资料文件夹中创建到.ssh目录的符号链接:

    ln -s /drives/c/Users/<YOUR_WINDOWS_USERNAME>/.ssh .ssh

  • 运行ssh并包括私钥的路径:

    ssh -i ~/.ssh/<MY_PRIVATE_KEY> <REMOTE_USERNAME>@<REMOTE_SERVER>

选项2 - SSH会话

创建新的SSH会话并配置必要的参数。具体来说,您必须勾选Use private key并指向PPK文件: Private key session settings

附加提示:SSH配置

关于对GitHub的操作,您可以在.ssh/config中包含一个条目,例如:

# GitHub for <USERNAME> account
Host github.com
        PreferredAuthentications publickey
        IdentityFile ~/.ssh/<PPK_PRIVATE_KEY>

通过这种方式,您可以运行git命令并自动选择适当的密钥。


2
抱歉,我刚刚注意到你的目标是使用git命令,所以选项2不适合你的目的。无论如何,我还是会留下它,以防对其他人有帮助。 - Secesor

0
为了在Linux和Windows上拥有相同的配置,我这样做:
  • 使用Mobaxterm提供的内部SSH代理

enter image description here

加载私人文件:
ssh-add /drives/c/foo/<MY_PRIVATE_KEY>

之后,我可以使用SSH克隆我的Git仓库。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接