CentOS-7 配置 SSH 远程登录

CentOS 配置 SSH 远程登录

一、环境

版本号:CentOS-7-x86_64-Minimal-2009

Windows版本:Windows 11 家庭中文版 22H2

Vmware版本:VMware® Workstation 17 Pro - 17.0.1 build-21139696

在这里插入图片描述

二、配置网络

1、检查网络状态

首先先检查网络是否畅通,我们还是使用 ping baidu.com 的方法,因为直接 ping IP 还是会有无法找到 DNS 服务器的问题,所以我们直接 ping 域名。类似下图这种就是可以通过主机连接到网络的情况了。

在这里插入图片描述

2、下载 net-tools 工具

检查虚拟机与主机之间的网络状态,也就是虚拟机是否能与主机进行通讯,因为CentOS最小化安装是不带网络工具的,就是没有 net-tools,所以就用不了ifconfig 来查看ip,所以我们先用命令下载 net-tools。

sudo yum install net-tools -y

下载中出现有依赖包,系统会询问用户是否进行下载,这里的 -y 是指如果出现这种询问的情况,自动同意的意思,sudo简单来说就是将用户提升为管理员权限。

在这里插入图片描述

在这里插入图片描述

出现第二张图说明下载完毕了,这时候我们就可以用 ifconfig 查看这台虚拟机的 ip 地址了。

3、检查主机与虚拟机是否正常连通

使用 ifconfig 命令获取虚拟机的 IP 地址。

ifconfig

在这里插入图片描述

打一下码,这里有两张网卡,因为我设置了 桥接NAT 都有,所以会有两张网卡,但是这不影响使用的,主要还是看那个 en33 的网卡,那个是NAT 的网卡。

然后我们打开 windows 的命令行窗口 cmd,ping XXX.XXX.XXX.XXX (虚拟机的IP地址) 虚拟机检查是否能连接到虚拟机。

ping XXX.XXX.XXX.XXX

在这里插入图片描述

到这个地方我们确认主机能能与虚拟机进行正常通讯的,然后我们在命令提示符中输入 ipconfig,找到主机的 IP地址,看好!是无线局域网的 IPV4 地址,找错了概不负责。

在这里插入图片描述

然后我们在用虚拟机 ping 主机的 IP 地址,确认虚拟机也可以与主机进行通讯。

在这里插入图片描述

三、SSH 配置

1、检查 CentOS 系统是否已经安装了 SSH 服务

查看的办法不少,但是最简单的当然就是看服务有没有开启了,所以直接输入 ps -e | grep ssh 来查看 ssh 服务是否在运行当中。

ps -e | grep ssh

在这里插入图片描述

第二种查看当前的centos是否安装了openssh-server服务(默认安装openssh-server服务),使用 rpm -qa|grep -E ssh 命令就可以了。

rpm -qa|grep -E ssh

在这里插入图片描述

看到显示结果有前面三个标红的文件其实就可以进行连接了,到这我就可以直接连接了…但是好像写的也不算多,那我就讲讲没有 SSH 服务的状况吧。

2、安装 SSH 服务

这里我们依旧采用 yum 安装,可能很多人会觉得,为什么不直接进入管理员用户而是要老是使用 sudo 命令呢,这个问题其实很好回答,我们先不说多用户模式下鱼龙混杂的情况,主要是为了让大家养成一个好的习惯,因为工作的时候是不可能说让你直接使用 root 用户的,这样不仅会有很大的安全隐患,如果不小心删除了某些东西,这个后果也是无法预料的。

sudo yum install openssh-server -y

因为我已经安装了这个服务,所以就不带图示了。

3、配置 SSH 文件

OpenSSH的主配置文件:/etc/ssh/sshd_config

因为我们还没有下载 vim 工具,所以我们先使用 vi 命令,也可以下载 vim 工具之后在执行命令也可以,具体看大家需求。

sudo vi /etc/ssh/sshd_config

可以跳过下面的下载安装 vim 工具的那一步

下载安装 vim

下载 vim 工具,然后打开配置文件

sudo install vim -y

在这里插入图片描述

sudo vi /etc/ssh/sshd_config

修改文件内容

常见的配置选项:

Port=22 设置SSH的端口号是22(默认端口号为22)

Protocol 2 启用SSH版本2协议

ListenAddress 192.168.0.222 设置服务监听的地址

DenyUsers user1 user2 foo 拒绝访问的用户(用空格隔开)

AllowUsers root osmond vivek 允许访问的用户(用空格隔开)

PermitRootLogin no 禁止root用户登陆

PermitEmptyPasswords no 用户登陆需要密码认证

PasswordAuthentication yes 启用口令认证方式

这里不需要将中文也写进文档里面,这只是让大家更好理解而已。

4、设置 SSH 服务

输入命令 service sshd restart 来重启 ssh 服务

service sshd restart

同样的,为了方便日后我们连接,我们为其设置开机自启

sudo systemctl enable ssh

最后我们再来查看一下 ssh 服务的运行状态

systemctl status sshd

在这里插入图片描述

到这里我们就可以宣告结束了,但是可能还是会有一种情况,就是那个万恶的防火墙!

5、配置防火墙

在这里插入图片描述

一般来说,防火墙不会那么严格,不会有那么多的影响,但还是会有万一的情况出现。所以我们的解决办法就有两种,第一种比较简单,直接就是关闭防火墙,第二种就是开放 ssh 服务所需要的端口,也就是 22 号端口,这样也可以。

开放端口方式

sudo firewall-cmd --zone=public --add-port=22/tcp --permanent  
sudo service firewalld restart  

上面就是添加一个22端口用于开放,然后重启防火墙的操作。

关闭防火墙方式

systemctl stop firewalld.service

注意事项

上述步骤其实并不能完全绝对地保证能进行 SSH 远程登录,因为我已经做好了,也没有图片,所以就不测试了。

1、测试 SSH 连接是否能用

ssh localhost

这句命令就是用来查看是否能进行远程连接的,俗称自己连自己,一般来说,只要 SSH 服务能用都是能连接的上的,大概都不会出什么太大的问题。

2、主机无法 ping 通虚拟机,但反向可以

这种问题就是单纯地主机找不到虚拟机的地址,但是虚拟机能找到主机的地址,所以就是网卡设置的问题,所以我们先打开网络适配器,进入的方法有很多种,下面就介绍其中一种。

控制面板 -> 网络和 Internet -> 高级网络设置 -> 更多网络适配器选项(注意:这里是win11的操作系统,其他的可能不一定是这样,但是都是打开下图这个地方。

注意这里是 NAT 的连接方式,设置的网络适配器是 VMnet8,但是有些并不是这样设置的(虽然一般都是),如果不是这样的话,可以先看看虚拟机的虚拟网络适配器中设置的究竟是哪个网络适配器(节省时间,我就不图示了)。

在这里插入图片描述

右键单击 -> 属性

在这里插入图片描述

勾选自动获得 IP 地址(O) -> 确定

在这里插入图片描述

到这里应该就可以进行连接了,如果再不行,咱再讨论。

猜你喜欢

转载自blog.csdn.net/m0_68192925/article/details/129564600