目录
前言
之前其实遇到过这种情况,当时只是打开虚拟网络编辑器,恢复默认设置,.粗暴的解决了就不管了,这次又遇到了,刚好又不是很忙,就仔细看看,到底是哪里出了问题。
一、查阅资料尝试解决
1.1 怀疑是网段问题
https://blog.csdn.net/feng_zhiyu/article/details/80461432
根据这篇文章显示,他连接不上是由于主机和客户机不在统一个网段。
我查看自己的网段
主机IP:10.0.0.1
客户机IP:10.0.0.31
与他的情况不符,尝试其它办法。
1.2、怀疑是虚拟机防火墙问题
之后根据
https://blog.csdn.net/miss1181248983/article/details/81030103
这篇文章显示,有可能是防火墙问题,进行尝试,逐步关闭firewalld、selinux、iptables都不起作用。
尝试其它办法。
1.3、解决问题
后来又仔细试了下发现,我的主机可以ping通虚拟机,而虚拟机无法ping通主机,且虚拟机可以ping通百度。
又重新搜索
https://zhidao.baidu.com/question/588670466.html
最后根据上面这篇回答找到了问题的真正原因:
不是虚拟机防火墙与安全策略的问题,而是主机防火墙的问题。
我一开始将主机防火墙全关了进行尝试。
虚拟机ping主机
果然可以ping通,确实是主机防火墙的问题。
由于主机平时还要使用,不可能一直将防火墙关闭,太危险了。
重新将防火墙全都开启后,尝试修改防火墙规则
https://jingyan.baidu.com/album/46650658ea808df549e5f8ca.html?picindex=1
根据在百度知道搜到的步骤尝试修改防护墙规则。
最终添加了vmnet8这样一条规则
需要注意的是允许的ip范围要是虚拟机所在的局域网,只是允许虚拟机的ip的话,好像仍然不行,我这边主机防火墙好像过滤了虚拟机所在网段的所有数据。
成功ping通主机
1.4、再次尝试连接虚拟机
仍然失败
Connecting to 10.0.0.31:22...
Could not connect to '10.0.0.31' (port 22): Connection failed.
Type `help' to learn how to use Xshell prompt.
[C:\~]$
查看sshd服务
查看端口发现,没有22端口。
查看服务发现sshd服务启动失败。
查看出错信息发现
Apr 17 20:35:33 agent sshd[4112]: error: Permissions 0711 for '/etc/ssh/ssh_host_ed25519_key' are too open.
Apr 17 20:35:33 agent sshd[4112]: error: It is required that your private key files are NOT accessible by others.
Apr 17 20:35:33 agent sshd[4112]: error: This private key will be ignored.
Apr 17 20:35:33 agent sshd[4112]: error: key_load_private: bad permissions
Apr 17 20:35:33 agent sshd[4112]: error: Could not load host key: /etc/ssh/ssh_host_ed25519_key
搜索出错原因
https://www.cnblogs.com/dependence/p/4309496.html
这篇文章是没有密钥,我看了下我的目录发现,我有ssh_host_rsa_key文件,只是颜色是绿色的
这是更正后的图片。
这时,才想到,之前不小心将系统中所有文件都加了执行权限
再加上之前的错误提示:Permissions 0711 for '/etc/ssh/ssh_host_ed25519_key' are too open,我才真正注意到0711。
更正后,重启sshd
二、问题解决
重新连接ssh
三、经验总结
以后遇到问题时,不应解决了就扔到一边了,要多记录,多总结,多去思考。