我第一次做git pull,在git中提示无法确定主机的真实性,RSA密钥指纹与我生成的私钥相比不正确。我只是想知道如何更新它以便它读取正确的文件以及为什么它首先读取错误的指纹?
我遇到了类似的问题,这意味着远程主机未知/不受信任。修复方法是在known_hosts 文件中包含远程主机条目。
这就是我所做的:
生成(或使用现有的)RSA 密钥并将其存储在
<USER.HOME>/.ssh
文件中。如果您使用的是 eclipse,则可以使用 Preferences 生成 RSA 密钥;
Generate RSA Key...
Save Private Key...
在.ssh文件夹中现在你的
<USER.HOME>/.ssh
将包含文件;私钥、公钥和known_hostsssh -vt <user>@<hostname>
现在,如果您尝试将文件推送到远程,您不会看到任何错误。
将 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.
如果您不太关心安全性,只需键入“是”即可继续。
或者,当它提出问题时:
ECDSA 密钥指纹是 SHA256:....
您确定要继续连接吗(是/否/[指纹])?
您应该从可靠的来源(例如公司网站)找到真正的 SSH 主机密钥指纹,将其复制并粘贴作为问题的答案。然后,您的 SSH 客户端将检查指纹是否匹配。
我遇到的另一个问题是
known_hosts
文件以及 known_hosts2
文件中存在多个条目。
我唯一的猜测是,由于我在
./ssh/config
中重复使用了主机名来指向不同的 IP,因此它会混淆并创建多个条目。
这里发布了更好的答案:
http://stackoverflow.com/questions/2643502/git-permission-denied-publickey
这救了我!!!
这些命令仅在 git bash 提示符下有效。对于 Windows,您很可能需要位于 c:/users//.ssh 目录中。并将您的密钥命名为“is_rsa”。密码是可选的,如果您提供,每次拉取时都会提示您输入密码。
祝你好运。
您确定要继续连接吗(是/否/[指纹])?是的
注意:打印“yes”而不是按 Enter 键