前几天还可以正常远程连接服务器,今天突然ssh无法连接,并且提示connection refused拒绝连接。
于是查找解决办法,顺路记录和小伙伴分享,思路和步骤如下。
根据提示,初步判断应该是端口问题。
1、dos下连接,服务器的ip 地址为192.168.2.205,连接用户名为root。
命令1为:ssh root@192.168.2.205
上图提示 connection refused。(连接拒绝)
命令2为:netstat –an|grep 22
-a是显示所有连接和监听端口
-n是以数字形式显示地址和端口号
grep是过滤
22是ssh的端口号
上图执行命令后没有显示,说明监听不到22端口。
2、上次还可以连接上,应该不是没有安装openssh-server包,为了安全起见,先查询
rpm –qa|grep openssh-server
-q是query
-a是all
-qa是列所有的安装包
grep是过滤。
发现有安装包,说明不是安装包的问题。
3、接下来在sshd配置文件sshd_config做相关设置
vi /etc/ssh/sshd_config
去掉注释#号,在端口和地址前面。如下图,其实在安装成功centos7后,这些默认不用改动也可以正常连接ssh。
同时去掉远程登录的#号注释符
再把用户密码认证连接的注释号#去掉
用命令,先按键盘上的esc键,在:(冒号)提示下再按wq!回车保存退出。
4、用命令启动服务
systemctl start sshd
5、用命令验证端口状态
netstat –nltp|grep 22
-n是以数字形式显示地址和端口号
-l是显示监控中的服务器的Socket
-t显示TCP传输协议的连接。
-p显示正在使用Socket的程序识别码和程序名称。
发现22端口在监听,并且是sshd服务
用命令验证服务状态
systemctl status sshd
由上图可知,sshd服务是active(running)的。
6、用命令查看sshd服务是开机自动启动的
systemctl list-unit-files | grep sshd
systemctl list-unit-files命令可以看到所有开机服务,enable是开机自启动,disable是开机不启动,这个命令主要在centos7中使用。
7、再次连接ssh成功