“安全地”向known_hosts
文件添加密钥的最重要部分是从服务器管理员那里获取密钥指纹。密钥指纹应如下所示:
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA)
对于GitHub,通常我们不能直接与管理员交谈。但是,他们将密钥放在网页上,因此我们可以从那里恢复信息。
手动按键安装
1)从服务器上获取密钥的副本,并获取其指纹。注意:在检查指纹之前,请执行此操作。
$ ssh-keyscan -t rsa github.com | tee github-key-temp | ssh-keygen -lf -
# github.com:22 SSH-2.0-babeld-f3847d63
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA)
2)从服务器管理员那里获取密钥指纹的副本-在这种情况下,导航至包含github.com上信息的页面
- 转到github.com
- 转到帮助页面(如果已登录,则位于右侧菜单上;否则,位于主页底部)。
- 在“ 入门”部分中,转到“ 使用SSH连接到GitHub”
- 转到测试您的SSH连接
- 将该页面的SHA256指纹复制到文本编辑器中,以备后用。
3)比较两个来源的密钥
通过在文本编辑器中将它们直接放置在另一个之上,可以轻松查看是否已更改
2048 SHA256:nThbg6kXUpJWGl7E1IGOCspRomTxdCARLviKw6E5SY8 github.com (RSA) #key recovered from github website
2048 SHA256:nThbg6kXUpJ3Gl7E1InsaspRomtxdcArLviKaEsTGY8 github.com (RSA) #key recovered with keyscan
(请注意,第二个密钥已被操纵,但它看起来与原始密钥非常相似-如果发生这种情况,您将受到严重攻击,并应联系值得信赖的安全专家。)
如果密钥不同,请中止该过程并与安全专家联系
4)如果密钥比较正确,则应该安装已经下载的密钥
cat github-key-temp >> ~/.ssh/known_hosts
或为系统上的所有用户安装(以root用户身份):
cat github-key-temp >> /etc/ssh/ssh_known_hosts
自动密钥安装
如果您需要在构建过程中添加密钥,则应遵循上述手动过程的步骤1-3。
完成之后,检查github-key-temp
文件的内容并创建一个脚本以将这些内容添加到您的已知主机文件中。
if ! grep github.com ~/.ssh/known_hosts > /dev/null
then
echo "github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==" >> ~/.ssh/known_hosts
fi
现在,您应该摆脱所有ssh
已StrictHostKeyChecking
禁用的命令。