我正在尝试使用 ssh 将我的 Windows 11 电脑链接到我的 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!
使用 MobaXterm 使用私钥进行 SSH 有两种选择:
先决条件
对于这两个选项,您需要将 PPK 格式的私钥添加到 PageAnt(与 Putty 一起安装),并在 MobaXterm SSH 设置中指定您
Use external Pageant
:
请参阅本指南的步骤 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 文件:
其他提示:SSH 配置
关于针对 GitHub 的操作,您可以在
.ssh/config
中包含一个条目,例如:
# GitHub for <USERNAME> account
Host github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/<PPK_PRIVATE_KEY>
这样您就可以运行 git 命令,并且会自动选择适当的键。