如何提高Ubuntu 18.04系统的SSH安全性?

SSH服务是云服务器的主要访问点,同时也是最容易受到攻击的服务之一。本指南将通过不同的技巧和技术帮助提高服务的安全性。

更改端口

监听SSH连接的默认端口是22,更改此设置将允许将服务云化,并增加连接的安全性。
为了避免干扰机器上的其他现有服务,使用netstat命令检查哪些端口正在使用:

$ netstat -n -l

如何提高Ubuntu 18.04系统的SSH安全性?
通过传递给netstat的-l参数,强制它处于LISTEN状态的连接。本例中使用的端口如下:

  • 3306 MySQL service
  • 22 SSH
  • 80 Apache2 / HTTP
  • 53 DNS

若更改端口,需编辑/ etc / ssh / sshd_config中的配置文件,取消注释Port指令:

#Port 22

然后设置一个新的值(建议选值更大的),以防止它被任何端口自动扫描软件(例如2200、5574、1022)截获:

Port 5574

要申请更改,请通过以下方式上传:

$ sudo service sshd reload

之后,再通过使用reload来纠正任何错误并检查对另一个SSH客户机的任何新访问,从而保持连接活动。应用更改之后,指定新端口连接到服务器。例如,如果您从命令行使用SSH客户端:

$ ssh root@ -p 5574

身份验证

由于其安全性,通过RSA密钥访问是基于密码登录的另一种选择。在这种类型的身份验证中,客户端生成一个私钥和安装在服务器机器上的相关公钥,以明确地对客户端进行身份验证。
如果需要安装公钥,客户端首先需要使用ssh-keygen命令生成密钥对:

$ ssh-keygen
Generating public/private rsa key pair.
Enter file where to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.

在继续生成之前,ssh-keygen要求一个可用于身份验证的可选密码短语。为了方便访问,我们将这一部分留空。
完成后,软件将在指定的文件中保存两个文件

  • id_rsa: 客户端的私钥,不可与他人共享。
  • id_rsa.pub: 可共享的公钥。

要准备服务器环境,在用户文件夹内的.ssh文件夹中创建一个名为authorized_keys的文件,用于登录:

$ sudo mkdir ~/.ssh
$ sudo touch ~/.ssh/authorized_keys
$ sudo chmod 600 ~/.ssh/authorized_keys

确保该文件具有如上所示的权限。
然后继续粘贴客户端机器之前准备的公钥:

$ sudo nano ~/.ssh/authorized_keys
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCoTzd9RnqT0yioQG1klsLEK/VG9myo7CQ47aRXu7hnPit6Lgw5kAjC7vzNWYLTy2oIlsrVI7R/tvWmVNISGkWDp9U3fONbSLp+vgBKDzRUVAIqP/AIJ2THanyZxj2b8XU/4s2uzGoTLSR3ViX0JU6zTc+IkaBp1o3W3OolvO15E10/VYJCKN3TkxPsSSGE3QReXnCcnIZYAnrPf9f1DPP1Lo+VUCIzZ7IzcZajAWQ53hC71mTYNHkUgIlWxpRyEhnsRfmqEfUSFbTwpNEarv7vGlK686C4xVxlVfKbqlNa3/g2Vrae4ArVBM958JPZ6aa+7KDZfH5TDgPPtlFCIGkd root@testclient

保存文件并重新加载SSH服务:

$ sudo service sshd reload

此时访问服务器可能不需要任何密码:

$ ssh root@

如果一切正常,通过修改文件/ etc / ssh / sshd_config禁用从服务器机器的密码访问,使用以下参数:

ChallengeResponseAuthentication no
PasswordAuthentication no

请注意,您可以添加其他公钥,只需将它们保存在服务器计算机中以~ / .ssh / authorized_keys为末尾的文件。

可用时间限制

减少不必要的访问和攻击的一种策略是缩减SSH服务的可用时间。如果确定在某些时间(例如晚上11点到第二天早上8点)不需要使用服务器,可以设置一个自动时间表来停止连接端口。
建议使用名为iptables的默认防火墙,但是请谨记,根据其性质,iptables不保存输入的配置。
为加快保存和加载配置,可以使用iptables-persistent,它将重新加载系统启动时保存的配置。
继续安装:

$ sudo apt-get install iptables-persistent

如何提高Ubuntu 18.04系统的SSH安全性?
安装完成后,输入“chain”,阻止SSH服务:

$ sudo iptables -N chain-ssh
$ sudo iptables -A INPUT -p tcp --dport 22 -j chain-ssh

通过这种方式,所有指向端口22的连接(如果您的SSH服务使用另一个端口,请根据您的自行更改该值)将通过新创建的“chain- SSH”链。
用以下命令保存当前配置(将由iptables-persistent加载):

$ sudo iptables-save > /etc/iptables/rules.v4

然后通过修改crontab,创建一个时间时间表,用于在链上输入和删除规则,具体操作如下:

$ sudo crontab -e
# m h  dom mon dow   command
0 23   * * *   iptables -A chain-ssh -j DROP
0 8    * * *   iptables -F chain-ssh

如您所见,通过第一个操作添加在11.00 pm连接的DROP规则,而第二个操作在08.00 am清空链以恢复服务。
保存文件以使更改生效。

原创文章,作者:余初云,如若转载,请注明出处:https://blog.jidcy.com/jsjc/2717.html

Like (1)
Previous 2026年5月20日 下午12:02
Next 2026年5月21日

相关推荐

  • 塔式服务器是什么?

    塔式服务器其实是由电脑主机演变而来的,只是在可靠性、稳定性、通用性、信息处理能力上更为出色的电脑主机。一般来说个人电脑也能充当网络服务器,只需装上服务器系统即可,但普通电脑主机往往…

    2026年7月6日
    0
  • 什么是服务器性能监控?

    服务器性能监控,简单来说就是对服务器的各类系统资源进行实时观测,包括CPU使用率、内存占用、存储容量、I/O性能以及网络运行状态等。 做好这项工作,能帮我们及时发现服务器的各种异常…

    2026年4月23日
    0
  • 网站出现http403禁止访问是什么原因?

    在网站运营的过程中,常见的一种错误就是http403禁止访问错误了,直接表现就是网站打不开。而且网站出现http403禁止访问错误的原因较多,今天我们就来看一下。 http403禁…

    2026年5月26日
    0
  • HTTPS靠什么保障通信安全?

    大多数人都听说过HTTPS,也清楚它的作用是保障通信安全,但如果没仔细研究过,大概率说不清它到底是怎么做到的。 这篇文章围绕三个核心问题展开: 1、HTTPS到底是什么? 2、它跟…

    2026年6月11日
    0
  • Linux的查找和定位命令有什么不一样?

    熟悉 Linux 终端与否,其实取决于你能否很好地应对混乱的目录结构。Linux 查找命令和 Linux 定位命令是你在审计安全权限、清理日志文件,或寻找你确定保存在某处的配置脚本…

    2026年3月25日
    0
  • BGP机房与其他机房有何区别?

    什么是BGP?BGP全称边界网关协议(Border Gateway Protocol),是用于连接互联网上各个自治系统的路由选择协议。BGP主要应用于互联网AS(自治系统)之间的互…

    2026年7月6日
    0
  • 网站域名到期该如何处理?

    相信大家都清楚,域名是存在一定有效期限的,倘若到期之后未能及时缴纳费用,该域名便不再归你所有。近期有不少朋友在咨询:网站域名到期了该如何处理?到期之后会保留多长时间?下面小编就来为…

    2026年6月15日
    0
  • CDN高防如何抵御网络攻击?

    随着云计算与移动互联网的迅猛发展,越来越多的业务开始转向云端展开,越来越多的数据也被存储于云端,云计算所面临的信息安全问题正日趋严峻。基于漏洞、病毒、未知威胁发起的攻击日益频繁且趋…

    2026年7月25日
    0
  • 什么是渗透测试?渗透测试有什么作用?

    现实环境中,中小企业所面临的网络安全威胁复杂多元。而最大的风险,恰恰是企业自认为防护足够牢固,殊不知威胁早已悄然潜入内部,伺机而动。伴随安全行业的进步与技术人员防护认知的增强,以渗…

    2026年5月28日
    0
  • 别再堆参数了!能帮企业赚钱的 AI,才是好 AI

    当下AI行业深陷无效内卷:行业扎堆堆砌超大参数、刷新跑分数据,演示效果愈发精美,却普遍落地乏力。大厂竞速万亿级大模型,中小厂商跟风复刻通用AI产品,赛道同质化严重。大量算力、资金、…

    2026年7月3日
    0