tyr*_*awn 5 ssh amazon-ec2 amazon-web-services github-actions
我有点困惑。我正在尝试使用 github 操作通过 SSH 连接到我的 ec2 实例并进行部署。我将密钥(来自 ec2 控制台)作为秘密保存在 github 中,如下所示:
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.COBOTSSH }}
name: id_rsa
known_hosts: ${{ secrets.KNOWN_HOSTS }}
- name: ssh
run: ssh ${{ secrets.USERNAME }}@${{ secrets.KNOWN_HOSTS }}
Run Code Online (Sandbox Code Playgroud)
不幸的是我得到:
Host key verification failed.
我已经尝试了多种 SSH github 操作解决方案,所以我认为这是用户错误(shimataro 是黄金标准)。所以我会非常具体地说明我做了什么:
ssh-copy-id?任何关于如何执行此操作的逐行示例将非常感激 - 我是一个 Linux 菜鸟。根据shimataro/ssh-key-action 上的问答。
主机密钥验证失败。:正确设置known_hosts参数(使用ssh-keyscan命令)。
该KNOWN_HOSTS秘密应该反映known_hosts文件的样子。known_hosts文件包含您之前连接过的远程服务器的 SSH 指纹。远程服务器文件中的条目known_hosts在 Windows 上可能看起来像这样(在 Ubuntu Linux 上,IP 看起来像乱码,也许它也被加密了):
3.25.10.23 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNosdfwecYTItbmlzdHAyNAAAIbmlzdHAyNTYAAABBBAets0ZEyan6q5K1Z7fiMcqpLLjtSGaqn5kwec2vXCdLumKdtWmJexjc1Q8U43COnEiOyEI9HSHBYqm5E1Rog=
该错误是因为您将 EC2 DNS 复制到KNOWN_HOSTS密钥中,这不是正确的格式。EC2 DNS 看起来像:
ec2-3-5-30-213.ap-southeast-2.compute.amazonaws.com
要获得正确的指纹,您可以known_hosts在记事本中打开文件。在 Windows 上它是C:\Users\{YourUserName}\.ssh在 Linux (Ubuntu) 上它是在\home\{YourUserName}\.ssh.
您也许能够通过 IP 地址识别远程服务器条目。我的电脑上没有它,所以我打开了一个终端(在 Windows 或 Linux 上)并执行了ssh {YourRemoteServerUser}@{YourRemoteServerIP}. 它在提示中显示指纹(忽略它)并询问我是否要连接到主机。单击“是”,它将把 SSH 指纹存储在known_hosts您操作系统的文件中。然后我只需打开该文件并将条目复制到KNOWN_HOSTS秘密中。
注意:shimataro 概述了在大多数情况下使用“StrictHostKeyChecking=no”并不安全。看这里。
| 归档时间: |
|
| 查看次数: |
6954 次 |
| 最近记录: |