我第一次做 git pull 并且在 git 中提示无法建立主机的真实性,与我生成的私钥相比,RSA 密钥指纹不正确。我只是想知道如何更新它以便它读取正确的文件,为什么它首先读取错误的指纹?
6 回答
我有类似的问题,这意味着远程主机是未知/不受信任的。解决方法是在 known_hosts 文件中包含远程主机条目。
这就是我所做的:
生成(或使用现有的)RSA 密钥并将它们存储在
<USER.HOME>/.ssh
文件中。如果您使用的是 eclipse,您可以使用 Preferences 生成 RSA 密钥;- 常规 -> 网络连接 -> SSH2,然后选择密钥管理。
- 现在点击
Generate RSA Key...
- 然后
Save Private Key...
在 .ssh 文件夹中
现在您
<USER.HOME>/.ssh
将包含文件;私钥、公钥和 known_hosts- 与您信任的主机共享您的公钥。
- 打开 Git Bash Promp(命令提示符)并输入以下命令。
ssh -vt <user>@<hostname>
- 例如:ssh -vt git@mygithub.com
- 当它提示错误时...您确定要继续连接(是/否)?
- 说“是”
- 现在您的远程主机已添加到 known_hosts
- 完毕。
现在,如果您尝试将文件推送到远程,您不会看到任何错误。
将 ssh 密钥添加到 GitLab 后,当您尝试克隆存储库时,如果enter
直接按,您将收到以下错误:
Cloning into 'hfe-insure-m'...
The authenticity of host 'git.zhonganinfo.com (100.112.23.182)' can't be established.
ECDSA key fingerprint is SHA256:IRLOr2bTvVB2rLgYVgyUibE+oLlZ0pUwU9wycc/5zYU.
Are you sure you want to continue connecting (yes/no/[fingerprint])?
Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
当你看到下面的句子时确保你输入yes
,不要enter
直接按。
您确定要继续连接(是/否/[指纹])?是的
例如
Cloning into 'hfe-insure-m'...
The authenticity of host 'git.zhonganinfo.com (100.112.23.182)' can't be established.
ECDSA key fingerprint is SHA256:IRLOr2bTvVB2rLgYVgyUibE+oLlZ0pUwU9wycc/5zYU.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'git.zhonganinfo.com,100.112.23.182' (ECDSA) to the list of known hosts.
remote: Enumerating objects: 31607, done.
remote: Counting objects: 100% (31607/31607), done.
remote: Compressing objects: 100% (10365/10365), done.
remote: Total 31607 (delta 20695), reused 31485 (delta 20604)
Receiving objects: 100% (31607/31607), 21.51 MiB | 581.00 KiB/s, done.
Resolving deltas: 100% (20695/20695), done.
在不妨碍真实性的情况下对问题的一个非常简单的答案是在它提出问题时
您确定要继续连接(是/否/[指纹])?只需从 SHA256 复制字符串:// 此处显示的字符串。并将其粘贴为问题的答案。
希望它也能为大家解决错误。
我遇到的另一个问题是known_hosts
文件中的多个条目以及一个known_hosts2
文件。
我唯一的猜测是,因为我重用了一个主机名./ssh/config
来指向不同的 IP,所以它混淆了创建的多个条目。
这里发布了一个更好的答案:
http://stackoverflow.com/questions/2643502/git-permission-denied-publickey
这救了我!!!
这些命令仅在 git bash 提示符下有效。对于 Windows,您很可能需要位于 c:/users//.ssh 目录中。并将您的密钥命名为“is_rsa”。密码是可选的,如果您提供,每次拉取时都会提示您输入密码。
祝你好运。