【问题标题】:Why does ssh-add fail on MobaXterm: is it a permissions issue?为什么 ssh-add 在 MobaXterm 上失败:是权限问题吗?
【发布时间】:2022-02-24 07:13:15
【问题描述】:

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

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

非常感谢您的帮助,因为目前我无法将文件推送到我的 GitHub!

【问题讨论】:

    标签: ssh private-key mobaxterm


    【解决方案1】:

    使用 MobaXterm 使用私钥进行 SSH 有两种选择:

    1. 本地终端
    2. SSH 会话

    先决条件

    对于这两个选项,您需要将 PPK 格式的私钥添加到 PageAnt(随 Putty 一起安装),并在 MobaXterm SSH 设置中指定 Use external Pageant 请参阅this guide 的第 1 步,了解如何将密钥添加到 PageAnt。

    请注意,PageAnt 仅接受 PPK 格式的密钥,因此您可能需要将您的密钥对转换为这种格式。您可以使用 PuttyGen 执行此操作(请参阅 SO 讨论 here

    选项 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 文件:

    其他提示:SSH 配置

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

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

    这样你就可以运行你的 git 命令并自动选择合适的键。

    【讨论】:

    • 抱歉,我刚刚注意到您的目标是使用 git 命令,因此 选项 2 无法达到您的目的。无论如何,我会留下它,以防它可以帮助其他人。
    猜你喜欢
    • 2020-04-05
    • 1970-01-01
    • 2015-01-26
    • 1970-01-01
    • 2013-06-21
    • 2012-03-27
    • 2013-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多