如果提供的内容对您有收获获取感触,请帮忙关注或点赞!thx for your support
1、前言
这几天我在自学Linux操作系统的使用,在我本地的VMWare workstation安装有一台centos7的Linux服务器,简单的操作都已经顺利处理完成,并且知道了Xshell是一个Windows上运行的终端模拟器,支持SSH, SFTP, TELNET, RLOGIN,和Serial。用于连接Unix或Linux服务器执行命令。
通过VMware安装的centos是正常运行,在终端上执行命令也都正常,但是使用自带的终端操作起来不方便,于是我使用客户端工具Xshell进行连接,但是此时怎么都无法连接。在大家学习Linux的时候是否遇到了类似的情况呢?遇到该问题大家又是如何解决呢?
2、目标与现状
针对前言中产生的疑惑,我分析了目标和现状,并提出了疑惑,具体内容如下表格所示:
序号 | 目标 | 现状 | 问题 |
1 | 使用Xshell连接本地VMWare中的Linux服务器 | Xshell无法连接成功 | 为什么Xshell不能连接成功? |
3、对目标与现状的冲突进行猜想
在解决这个问题之前,我们先来做如下的猜想
序号 | 猜想 |
1 | 是IP地址的配置问题吗? |
2 | ssh依赖安装了吗? |
3 | sshd_config的配置文件的配置项正确了吗? |
4 | 22端口开启了吗? |
4、验证猜想
4.1 是IP地址的配置问题吗?
检测IP地址配置是否有问题,我们可以在Linux的terminal中ping 一下百度的地址,查看结果是否能够成功。具体的检测如图所示:
经过命令ping通了百度的地址,说明IP地址相关的配置没有问题。
4.2 ssh依赖安装了吗?
要检测centos Linux中是否安装了ssh依赖,首先我的搞清楚ssh是什么。
SSH(Secure Shell) 是一种用于在不安全网络中提供安全通信的协议,同时也是一套实现这个协议的工具。它主要用于远程登录和其他网络服务的安全加密。
搞清楚了SSH的定义后,接下来我将提供4中方法,分别为:
F1、运行一下命令检测是否安装
rpm -q openssh-server
执行后输出:
openssh-server-7.4p1-23.el7_9.x86_64,说明依赖已经安装成功过。
F2、检查 SSH 服务是否正在运行
执行命令:
systemctl status sshd
或通过ps命令检测ssh的进程是否存在
ps -aux | grep ssh
如果输出如下的结果,则ssh进程存在
F3、尝试检测 SSH 端口(默认是 22 端口)
检测22端口是否连通,可以使用如下两种方式进行验证。
ss命令:
ss -tuln | grep 22
执行命令后,输出如下结果,说明22端口是正常:
也可以使用命令
netstat -tuln | grep 22
执行命令后输出如下结果,则说明端口22是正常
F4、检查配置文件
除了上述介绍的方法之外,还可以通过验证是否存在ssh的配置文件来确定ssh是否安装,运行命令
ls /ect/ssh/sshd_config
如果存在,则说明安装过ssh
4.3、sshd_config的配置文件的配置项正确了吗?
在上面通过命令ls 已经查询到了ssh的配置文件,那么接下来我通过命令cat查看一下文件的内容:
cat -n /etc/ssh/sshd_config
运行命令后,如果看到22端口、PermitRootlogin yes/ PasswordAuthentication yes,则说明配置文件是正常且22端口都是开放的
5、得出结论
对于本次连不上的原因主要是配置文件sshd_config没有开发端口,只要把前面的注释放开即可。