我为存储库设置了
core.sshCommand
选项,以便我在使用它时可以使用不同的 ssh 密钥(即 sshCommand = ssh -i /path/to/key
)。但是,当我运行 git submodule update
时,不考虑此选项:
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
有什么方法可以配置存储库以将给定的 ssh 密钥用于自身和任何子模块吗?
全局设置:
git config --global core.sshCommand "ssh -i /path/to/key"
但这为您使用的每个存储库设置了密钥。
或者为每个子模块设置它:
git submodule foreach git config core.sshCommand "ssh -i /path/to/key"
这曾经对我有用:
git config --global core.sshCommand "ssh -i /path/to/key"
但是,由于某种奇怪的原因,在 2024 年 9 月左右更新 Windows 后,它突然停止在我的 Windows11 机器上工作(我怀疑这与 OpenSSH 有关)。
甚至命令“ssh -i”也不再正常工作(它根本不添加密钥文件!)
无论如何,我通过调整 .git/config 中的“core.sshCommand”部分解决了所有这些问题,以便让它通过“ssh-add”添加密钥并显式调用 ssh.exe,如下所示:
[core]
(...)
sshCommand = ssh-add ~/.ssh/key.ppk 2>/dev/null && 'C:\\Windows\\System32\\OpenSSH\\ssh.exe'
完成此操作后,我的 Windows11 计算机上的一切都恢复正常。只是我的2c。