【问题标题】:"Failed to add the host to the list of known hosts" Windows prompt“未能将主机添加到已知主机列表”Windows 提示
【发布时间】:2014-05-31 21:46:04
【问题描述】:

我想尝试在我的常规 Windows 提示符中而不是在 Git Bash 中使用 git。仅仅是因为我可以使用 IntelliJ 提供的终端。我认为这是一个 1 分钟的修复,但我猜不是。

当我尝试git pull origin <branch> 时,我收到以下错误消息:

C:\Users\Username\Documents\Bitbucket\java-project>git pull
Could not create directory '/c/Username/.ssh'.
The authenticity of host 'bitbucket.org (131.103.20.167)' can't be established.
RSA key fingerprint is 12:8c:1b:f2:6d:14:6b:5c:3b:ec:aa:46:46:xy:7c:40.
Are you sure you want to continue connecting (yes/no)? yes
Failed to add the host to the list of known hosts (/c/Username/.ssh/known_hosts).
Permission denied (publickey).
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists.

我已设置现有 .ssh 文件夹的权限,以便所有用户(管理员和系统)都具有完全访问权限。所以应该没问题。

我还尝试以管理员身份运行提示以查看是否是问题所在,但事实并非如此。

我现在注意到的是它说:Could not create directory '/c/Username/.ssh'.。但是,我的.ssh 目录位于C:\Users\Username\.ssh。那么我可能需要更改我的配置。

Git 版本: 1.9.0.msysgit.0 Windows 版本: Windows 8.1

【问题讨论】:

  • 它是否在 git bash 提示符下工作?
  • 是的,它在那里工作得很好。我已经用了一两年了。
  • 那个路径'/c/Username/.ssh'看起来很有趣,不应该是'/c/Users/Username/.ssh'吗?
  • 确实如此。我注意到了同样的事情。我已经创建了一个文件C:\Users\Username\.ssh\config,其内容为UserKnownHostsFile /c/Users/Username/.ssh/known_hosts。但我认为git 对在哪里可以找到我的 .ssh 文件夹感到困惑。
  • 也许你在 cmd.exe 中定义了错误值的 HOME 环境变量

标签: windows git command-line


【解决方案1】:

首先,使用 msysgit 1.9.2 进行测试,当一个选择在安装过程中从 cmd.exe 中仅提供 git 命令时(如果有其他选择,使其仅在 git bash 下可用,或者使所有 MSYS 命令可用在 cmd.exe 下可用),git clonecmd.exe 提示符下工作。

ssh 客户端使用HOME 环境变量来查找.ssh/ 目录,但是git 应该处理所有丑陋的细节。您应该在您的正常 Windows 环境中定义 HOME,因此如果 cmd.exe 提示符中的 echo %HOME% 打印路径,请编辑 OS 环境变量并删除 @ 987654328@.

如果这不能解决问题,卸载并安装最新版本可能会有所帮助。


最后,你有像C:UsersUsername 这样的路径,这可能意味着你在某处缺少引号。在git bash中,试试这两个命令看看:

echo C:\Users\Username
echo 'C:\Users\Username'

【讨论】:

    【解决方案2】:

    确保在您的 cmd 会话中键入 git-cmd.bat,每个 Git For Windows msysgit release 都附带。

    这会将您的HOME 设置为%USERPROFILE%,这应该是C:\Users\Username
    但请确保您没有使用错误值定义的环境变量 HOME:如果是这种情况,请取消设置。

    【讨论】:

    • 你确定这是必要的吗? ssh 似乎可以从 cmd.exe 对我正常工作,而无需运行此 bat(最新的 msysgit 版本)。
    • @hyde 有必要检查HOME 的当前值:它将解释 OP 的情况。
    【解决方案3】:
    1. 打开 Git Bash 控制台。

    2. 执行以下命令启用读写; chmod 776 你的本地路径/known_hosts

    More details here

    【讨论】:

      猜你喜欢
      • 2013-07-14
      • 2023-03-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-07
      • 2021-09-21
      • 2019-06-26
      相关资源
      最近更新 更多