【问题标题】:How do I fix file access problems with Git Portable?如何解决 Git Portable 的文件访问问题?
【发布时间】:2022-01-22 20:58:21
【问题描述】:

我在 windows 上使用最新版本的 git 便携版。我使用 ssh 密钥配置了对我的 github 存储库的访问。一切正常。唯一的问题是我每次推送或拉取时都会收到以下错误消息:

hostfile_replace_entries: link /.ssh/known_hosts to /.ssh/known_hosts.old: Operation not permitted
update_known_hosts: hostfile_replace_entries failed for /.ssh/known_hosts: Operation not permitted

我不知道这是从哪里来的,也不知道如何解决。

【问题讨论】:

  • 您的 ssh 程序正在打印这些消息。 Git 在这里唯一的参与是它在使用 ssh 访问另一个 Git 存储库时调用外部(非 Git)ssh 程序。您可以控制 Git 运行哪个 ssh 程序,因此如果您有一个完全可以运行的程序,以及一个可以处理投诉的程序,您可以使用完全运行的程序来停止投诉:根据需要设置 core.sshCommand。否则,请调查您的 ssh 程序。

标签: git github ssh


【解决方案1】:

您可以将GIT_SSH_COMMAND 设置为ssh -Tv 以查看显示错误消息的位置。

/.ssh/known_hosts 表示 Git 认为 $HOME 为空。
因为那个文件应该在$HOME/.ssh/known_hosts

为了测试,在您的 Windows 用户环境变量中设置一个 HOME 变量,设置为 %USERPROFILE%
然后从新的 CMD 会话(新窗口)重试。

检查您是否设置了任何GIT_SSH 环境变量。
您应该使用来自C:\Windows\System32\OpenSSH\ssh.exeC:\Program Files\Git\usr\bin\ssh.exe 的SSH。

【讨论】: