我正在使用 molecule 和 vagrant 来部署 centos7 实例。由于某些原因,我需要使用ssh命令访问molecule实例。instead of molecule login
. 然后,SSH信息将粘贴到我的一个VS代码扩展中。
Molecule.yml
---
dependency:
name: gilt
driver:
name: vagrant
provider:
name: virtualbox
lint:
name: yamllint
platforms:
- name: openresty-instance
box: centos/7
instance_raw_config_args:
- "ssh.insert_key = false"
- "vm.network 'forwarded_port', guest: 22, host: 22"
- "vm.network 'forwarded_port', guest: 80, host: 8080"
interfaces:
- auto_config: true
network_name: private_network
ip: '192.168.33.111'
provisioner:
name: ansible
log: true
lint:
name: ansible-lint
verifier:
name: testinfra
lint:
name: flake8
上面的IP让我在vagrant外面访问80端口。
但对分子实例IP的ssh命令无法使用。
错误
有人可能正在窃听你(中间人攻击)! 也有可能是主机密钥刚刚被更改。远程主机发送的ECDSA密钥的指纹是SHA256:wVk4Da5pWWNHLiypvEKAJuwzG2FLOMgwPkrO4oFBZQ。请联系您的系统管理员。在Usersabel.sshknown_hosts中添加正确的主机密钥以消除此消息。 Usersabel.sshknown_hosts中的违规ECDSA密钥:32 192.168.33.111的ECDSA主机密钥已更改,您已要求严格检查。主机密钥验证失败
如果你在一个有静态服务器的环境中遇到这种情况,这条消息可能意味着:"有一些讨厌的东西正在发生"。
但如果你有一个测试环境,在这个环境中,你每天都会创建和销毁虚拟机,这就是一个 "正常 "的安全警告。
它只是意味着 "嘿,我发现了这个人,但他的指纹与我的文档档案中的指纹不匹配"。如果这是有意为之(就像我说的,在测试环境中)--那么只需进入 "文档存档",删除 "这个家伙的指纹",然后 "为他采集一个新的指纹"。
所以在你的情况下("Usersabel.sshknown_hosts:32"),只要打开你的 "known_hosts"-文件,然后删除第32行。
或者使用命令。
ssh-keygen -R 192.168.33.111 -f "~/Users/abel/.ssh/known_hosts"