yokila
yokila
Published on 2024-03-13 / 14 Visits
0
0

云服务器的入门配置及SSH连接(基于阿里云服务器)

一、前言

本文以阿里云的云服务器ECS为示例,展示如何从零开始使用云服务器(其实也是作者实况记录自己操作过程)。

当然,本文不是给阿里云打广告,实际上你大可以购买其他云服务商的云服务,这取决于你自己。

比如关于华为云服务器的初次使用,可以参考我的另一篇文章《云服务器的入门配置及SSH连接(基于华为云服务器)》

本文基于的服务器实例情况如下图所示

特别说明:如何挑选云服务器不在本文讨论范畴。

特别说明:作者对云服务器的使用也是新手,本文也仅仅是入门使用,还有更多深入的内容,仍旧需要通过更多的资料和实践进行学习。

特别说明:如果仅仅是需要一个其他系统环境(通常是Linux),且不需要长时间保持稳定运行,则其实更建议在自己电脑上搭建虚拟机(毕竟不花钱)。

二、控制台

既然是购买云服务,如果你买了,那么一定是已经登录了云服务商的平台。

在阿里云首页,点击右上角的控制台选项,进入控制台。

在控制台页面,点击开通资源中心

点击后等待一会儿,让阿里云构建完资源数据。

注:实测结束后不会自动刷新页面,所以需要手动刷新一下页面,然后就会出现下图内容

点击第一个服务器资源。

下图可以看到服务器的相关信息。

注:建议点击右下角位置安装插件,方便观察使用率信息

点击安装插件则会打开下方页面的新标签页(如果不需要安装,可以跳过这个环节)

可以选择自动安装或者手动安装,我这里图个方便就选择了自动安装。

二次确认。

过一两分钟后刷新可以看到使用率数据就出来了:

然后你可以在这里创建报警规则,例如CPU负载很高的时候发短信通知你之类的。

三、写在前面

回到刚刚的服务器实例控制台页面(实际上就是关闭刚刚的那个云监控标签页)

官方其实都已经提供了便捷的文档查找功能,只需要点击右侧的这个放大镜

手动检索,或者输入关键词检索

比如我输入“安全组”,就会自动检索相关文档

四、安全组

点击左侧的安全组菜单,即可进入下图页面。

阿里云会默认创建一个安全组,并且这个安全组会直接绑定到服务器上。

先不着急操作。

安全组这个词还很默认的话,建议先点击右上角的问号,查看一下阿里云提供的说明文档,理解一下安全组的概念。(建议看时,鼠标放在文档位置,点击鼠标右键,新建标签页来看)

基本上官方的介绍很详细了,我就不再补充了,下面的操作将默认你已经大概知道什么是安全组。

点击“管理规则”,查看一下这个安全组的详细信息。

配置安全组规则前,建议先阅读阿里云的这篇文档:《安全组规则》

默认安全组的入方向:

默认安全组的入方向为开放22端口(SSH链接)ICMP(用于ping)3389端口(RDP,远程桌面协议服务)

默认安全组的出方向:

默认安全组的出方向是不做限制。

接下来,我们就做一些前置准备,然后再进行配置安全组。

首先,安全起见,你想哪些端口可以被访问,就配置开放哪些端口,其余的应该都关闭掉。 

其次开放出来的端口,是只想给自己访问?还是允许所有人访问?如果是只想给自己访问。

如果只想开放给自己访问,则如何查自己的公共IP地址(注意,用 ipconfig 查到的 192.168.0.xxx 其实是局域网IP)

注意:公网 IP 地址分为两类:固定公网 IP动态公网 IP

注意:一般来说,现在租用宽带上网,公共IP地址都是动态的,即每次上网都分配一个IP地址,这个IP地址可能跟上次上网的IP地址相同,也可能不同,大多数情况是不同的。除非你去找运营商申请一个公共IP(不同地区政策不大一样,具体得问运营商),否则默认情况下通常都是动态的。

查当前的公共IP地址实测:(bing搜索可以、360搜索可以、百度搜索不行)

现在假设我的固定公共IP地址是:10.0.0.1/32(实际要换成你自己的公共IP地址),而且我是只想让端口被自己访问。

(如果自己的IP只能是动态的,那么只好把源地址配置成IP网段或者全网)

阅读常用端口文档

阅读安全组应用案例文档

特别说明:授权对象写0.0.0.0/0表示允许所有IP远程连接实例。请您根据实际业务需求,按照最小范围开放原则配置安全组规则,尽量避免全开(慎用::/0或者0.0.0.0/0)以免引发安全问题。

现在,返回到安全组首页,新建一个安全组(如果你要在默认安全组上直接操作就不需要创建新的安全组,但是个人建议是用新的安全组)

新安全组的页面如下图所示:

可以看到,已经默给你配置了一些端口协议的入方向策略,不过都是允许所有IP远程连接实例。理论上来说,这样是不需要的,一般需要依据实际情况来修改。

点击 快速添加,可以在弹出来的弹窗中快速添加常见的端口规则。

快速添加的弹窗

如果是点击手动添加,则需要手动输入规则信息。

点击手动规则后:

例如这是我填写的

出方向一般不会去限制,即允许服务器任意主动访问外部,新手可以不去管。

添加完毕后,点击 创建安全组,即可真正创建好我们新建的安全组。

回到实例页面,点击实例的ID

先选择安全组,再点击修改安全组

把安全组修改为我们刚刚编辑好的安全组。

至此,服务器实例的安全组就变成我们配置的那个。(安全组可以添加多个,生效情况取决于你配置的规则优先级)

下图中的菜单项可以看最终生效的规则。

如果后续有开放端口的变更,只需要在刚刚的编辑安全组的页面修改安全组里的规则即可。不需要重新给服务器实例修改配置的安全组。

五、点击开通防火墙防护

很贵,有需要再开

六、重置密码(非必须)

我看阿里云文档有说在创建实例的时候就会要求设置root账号的密码,但是我印象中不记得有这回事(或者可能我忘了)

如果你像我一样忘记了密码,那么可以点击 重置密码

设置好密码后,点击确定保存即可。

等流程走完,就ok了。

七、服务器防火墙

云服务器有两道防火墙,一个是刚刚我们操作的安全组,一个是Linux自带的防火墙

实测阿里云服务器的Linux自带的防火墙并未开启。

不行你可以执行一下:sudo ufw status

执行前,可以先看一下防火墙里配置的规则。

配置需要开放的端口,如22、3306之类。

Ubuntu防火墙允许外部访问端口(以12300为例):sudo ufw allow 12300

Ubuntu防火墙删除增加的规则(以12300为例):sudo ufw delete allow 12300 

启动的话,很简单,执行:ufw enable

八、安装OpenSSH Client

8.1 前言

首先,需要一个SSH连接工具,现在也有很多开源的免费的工具,选择很多,随便去查一下就能找到,所以这里不进行赘述。

所以,这里我要试着用一个免费的SSH工具来做示例(实际上你完全可以用和我不一样的SSH工具,毕竟原理上都差不多)

故而,本文以WindowsOpenSSH客户端为例讲解。

微软官网关于OpenSSH的文档:《适用于 Windows 的 OpenSSH 入门》

如果你不想去看,则下面有操作流程。

8.2 检测是否已安装OpenSSH客户端

  1. 先进入设置页面

  2. 在设置页面选择应用

  3. 然后选择可选功能

  4. 再检索OpenSSH客户端是否已经安装(下图是已经安装了)

8.3 安装OpenSSH客户端

如果你在上一步里发现,没有安装OpenSSH客户端,则可以按照以下流程进行安装。

(为了展示如何安装,我特意把OpenSSH客户端给卸载了)

  1. 点击查看功能

  2. 然后检索OpenSSH客户端

  3. 勾选

  4. 点击下一步

image-escu.png

再在新的弹窗中,点击安装

等安装好了,就行了。

image-banx.png

(其实还有利用powershell命令的方式进行安装的途径,但是不如这种图形界面的途径简便,所以没有展示,如果有需要则可以阅读前面提供的官方文档

九、远程连接到服务器(OpenSSH)

输入命令:ssh root@服务器公网IP

例如:ssh root@123.45.67.23

如果是第一次连接,则会要求你进行确定连接,输入 yes 即可。

然后输入root账号的密码。

即可完成连接。

此时,你就可以在服务器上执行命令,做各种操作了。

例如,ping百度

挺神奇的是,阿里云的这个服务器居然能解析域名,之前我在华为云上试就不行,必须用IP才行)

十、解决 SSH 自动断开连接的问题

10.1 前言

当实际利用OpenSSH客户端操作时,你会发现,过一段时间SSH连接就会自动断开(实测我这台服务器,5分钟不操作就会断掉,仅限我这个服务器)。

这主要是防火墙以为SSH连接已经不活跃了,所以直接把连接干掉。

那么,我们要做的,就是让SSH连接保持活跃。

解决方式有三种:

  • 改服务端sshd配置

  • 改客户端ssh配置

  • 在ssh的命令参数中加配置

其实意思都一样,就是要有一方在那里始终活跃,避免连接被判定不活跃,然后被干掉。(还有一种小题大做的,就是去改防火墙配置,本文不讨论)

建议补充阅读文章:

《Linux使用ssh超时断开连接的真正原因》

《远程终端连接linux超时后自动断开问题》

《ssh 设置超时时间》

10.2 改服务端sshd配置

不是很推荐,但是这里提供操作方式。

此处操作内容来自于阿里云官方文档(未进行实践):《Linux实例如何设置SSH客户端的会话连接保持时间》

步骤① 编辑/etc/ssh/sshd_config文件

步骤② 添加配置项:

ClientAliveInterval 60
ClientAliveCountMax 300

步骤③ 重启sshd服务,使配置生效

执行命令:systemctl restart sshd

说明:

ClientAliveInterval:设置超时间隔(以秒为单位),在此间隔之后,如果尚未从客户端接收到任何数据,则sshd将通过加密的通道发送消息以请求客户端的响应。默认值为0,表示这些消息将不会发送到客户端。(其实就是多久发送一次消息,成功交互,就让连接保持活跃)(这个时间一定要设置得比防火墙以为SSH空闲的时间阈值小,不然就没意义了)

ClientAliveCountMax:设置客户端活动消息的数量,该消息可以在sshd接收不到来自客户端的任何消息的情况下发送。如果在发送客户端活动消息时达到此阈值,则sshd将断开客户端连接,从而终止会话。(ClientAliveInterval 的保持活跃的交互失败时,最大连续尝试连接次数)

10.3 客户端做配置

本文实际为给OpenSSH Client增加配置

步骤① 到达OpenSSH的默认配置文件路径:C:\ProgramData\ssh

步骤② 如果在ssh文件夹下,无配置文件,就新建配置文件 ssh_config

如果你发现你只能创建文件夹,而无法创建文件,那就对了,因为当您在Windows 11上打开文件资源管理器时,默认情况下,它以标准特权打开,此时你的权限不够操作。

(如果你实践时发现已经有权限操作,就不需要额外进行下面描述的配置权限的行为)

所以,我们现在要做的就是让自己先有这个权限(有两种方式,一种是以管理员权限操作文件夹,一个是暂时给普通用户提供权限)。

这里展示的是暂时给普通用户提供权限的方式。

在ssh文件夹中,点击鼠标右键,选择属性,再在属性页面里选择安全

选择Authenticated Users,然后点击编辑

勾选写入,点击确定

此时已经具备权限了,所以继续创建文件 ssh_config

保存时会提示说需要提供管理员权限,那就点击继续,提供对应权限。

创建文件后的文件夹

编辑ssh_config文件

添加配置:

ServerAliveInterval 60
ServerAliveCountMax 3

说明:

ServerAliveInterval 设置超时间隔(以秒为单位),在此间隔之后,如果尚未从服务端接收到任何数据,则ssh将通过加密的通道发送消息以请求服务端的响应。默认值为0,表示这些消息将不会发送到服务端。(其实就是多久发送一次消息,成功交互,就让连接保持活跃)(这个时间一定要设置得比防火墙以为SSH空闲的时间阈值小,不然就没意义了)

ServerAliveCountMax 设置活动消息的数量。如果在发送服务端活动消息时达到此阈值,则ssh将断开连接,从而终止会话。(ServerAliveInterval保持活跃的交互失败时,最大连续尝试连接次数)

添加配置后记得保存。

录入值后

此时,再建立的新的SSH连接就不会自动断掉了(如果客户端和服务器一直是通的话)

别忘了,可以按照上面修改文件夹权限的步骤,把普通用户的写入权限取消掉。

10.4 命令中添加参数

这种方式其实就是临时给一个会话设置这个不会自动断连的效果:ssh -o ServerAliveInterval=60 -o ServerAliveCountMax=3  root@服务器IP

此时的SSH连接也不会自动断掉(如果客户端和服务器一直是通的话)


Comment