我正在尝试使用
sudo npm install
为在nodejs中编写的应用程序安装所有依赖项。我的操作系统是Ubuntu 13.04
但是,我一直收到这个警告:
The authenticity of host 'github.com (192.30.252.131)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:1d:52:13:1a:21:2d:bz:1d:66:a8.
Are you sure you want to continue connecting (yes/no)?
之前有人遇到过此警告吗?是否可以在本地验证和存储指纹?所以当我再次输入sudo npm install时,我不需要再次进行身份验证。
现在,我无法输入任何内容,甚至“是”。我的终端卡住了,我必须按ctrl + c才能终止。
答案 0 :(得分:27)
Ssh正确地抱怨他们无法确保您确实通过安全通道连接到github的服务器。这可能就是github推荐https访问的原因,这要归功于其公钥基础设施的开箱即用。
现在,您可以使用它,但要注意它涉及缓存公钥指纹,如果操作不正确,会为攻击者提供永久性的中间人攻击。
选项1是使用https url而不是ssh。
选项2具有ssh访问权限。
执行ssh github.com
但不要只输入“是”。检查显示的哈希值是否与https://help.github.com/articles/what-are-github-s-ssh-key-fingerprints/中显示的哈希值之一匹配(在您的问题中确实如此,并且看,由于相同的公钥基础结构原因,页面是通过https获取的)。
如果哈希匹配,那么连接确实是安全的,你可以对ssh的问题回答“是”。
Ssh会显示如下内容:
警告:永久添加了IP地址的RSA主机密钥 '192.30.252.128'到已知主机列表。
之后,您将看到类似
的消息许可被拒绝(公钥)。
这很好,但表明您需要进一步配置,或者只是
您好 yourlogin !您已成功通过身份验证,但GitHub没有 提供shell访问。
这意味着一切正常,您可以重试第一次操作。
请注意,如果您重试相同的ssh命令,它将不再提出问题。
答案 1 :(得分:17)
在命令提示符下运行ssh -o StrictHostKeyChecking=no git@github.com
以向authentic_hosts添加真实性。那么下次你就不会得到提示。
答案 2 :(得分:2)
Github刚刚更改了他们的IP地址基础设施。您可以在此处阅读更多详细信息https://github.com/blog/1606-ip-address-changes。此外,我以前从未见过这样的问题。你的package.json是否包含通过ssh克隆的git依赖?
尝试回音'是'| sudo npm install 。这可以解决您的问题。如果没有,请尝试通过HTTPS进行克隆,或者将模块下载为tarball,这可以像https://api.github.com/repos/ 用户名 / 重新命名一样完成 /压缩包
答案 3 :(得分:2)
你确定你不是以不同的用户身份不小心登录的(当我以root身份sudo -s / login并忘记我的GitHub帐户没有链接到该用户时,就会发生这种情况。)
答案 4 :(得分:0)
我登陆这里是因为我得到了这个错误并且不明白为什么。原来我的npm命令中有错字:
npm install -P -E @angular/common @angular/compiler @angular/core @angular/forms
@angular/platform-browser @angular/router @angular/animations@ angular/platform-browser-dynamic
请注意行尾如何读取@angular/animations@ angular/platform-browser-dynamic
。
NPM将最后一个“软件包”解释为github存储库,这就是错误的出处。
我知道这不是实际上的问题,但是我提出来是为了防止其他人因类似的错误而遇到此问题。
答案 5 :(得分:0)
如果您有这种类型的问题
The authenticity of host 'github.com (192.30.252.131)' can't be established.
RSA key fingerprint is 16:27:ac:a5:76:28:1d:52:13:1a:21:2d:bz:1d:66:a8.
Are you sure you want to continue connecting (yes/no)?
别担心,请按照以下步骤操作:
第 1 步:yes [press enter]
然后你会得到:
Please type 'yes', 'no' or the fingerprint:
第 2 步:copy fingerprint and paste here [press enter ]
答案 6 :(得分:0)
我使用的是 npm ci
,但 package-lock.json
文件有很多 git+ssh://
网址,这些网址触发了此错误消息。
抨击这里接受的答案,我使用了一个小 sed
脚本将所有 ssh://
URL 替换为 https://
URL:
sed -i 's|git+ssh://git@github.com|https://github.com|' ./package-lock.json
我希望这可以帮助一些处于类似情况的人。
这是一个快速的解决方法。更持久的解决方案是修复 package.json
文件中的 URL,以构建改进的 package-lock.json
文件。
答案 7 :(得分:-2)
运行ssh github.com
并输入yes,它应该会失败。然后再次运行您的命令。如果没有再次尝试ssh github.com
,因为它们有多个IP,您可能需要所有这些IP。
答案 8 :(得分:-2)
我遇到同样的问题,您只需将SSH密钥添加到ssh-agent,请看这个链接:
https://help.github.com/articles/checking-for-existing-ssh-keys/
它与我合作。