Cod*_*tor 6 linux ssh amazon-ec2 amazon-web-services
我有 AWS 代码构建设置,想要访问 EC2 ubuntu 实例,它们都在同一个 VPC 和私有子网中。想要使用 SSH 从代码构建到实例执行命令但出现以下错误,同时尝试在远程实例上执行命令:
$ ssh -o 'PubkeyAuthentication no' ubuntu@X.X.X.X uname
Host key verification failed.
Run Code Online (Sandbox Code Playgroud)
我还尝试创建 .pem 文件并将公钥粘贴到新的 pem 文件中,更改其权限并使用它。但没有成功。
$ssh -i "remote-instance.pem" ubuntu@X.X.X.X uname
Host key verification failed.
Run Code Online (Sandbox Code Playgroud)
是否可以通过某些选项实现相同的目标?
MLu*_*MLu 11
正如您第一次ssh访问远程主机时所知道的那样,它会询问您是否要将远程主机密钥存储到~/.ssh/known_hosts. 您访问远程主机每次事后ssh验证收到的主机密钥对~/.ssh/known_hosts。
然而当 ssh在CodeBuild或其他一些非交互式设置中运行时,它无法询问是否接受远程密钥(因为在非交互式会话中没有人可以询问)并且为了安全起见,它无法通过主机密钥验证失败的
您有两种解决方法:
更安全是将 Ubuntu 服务器的主机密钥提供给您的 CodeBuild,并将其存储到一个可以验证它的known_hosts文件中ssh。确保它位于正确的路径中,并具有正确的所有权和权限。
不太安全的是禁用检查:
ssh -o StrictHostKeyChecking=no {your-ubuntu-server}
Run Code Online (Sandbox Code Playgroud)希望有帮助:)