如何在 Linux 中使用备用端口进行 SSH 连接?

本文涉及的产品
云防火墙,500元 1000GB
日志服务 SLS,月写入数据量 50GB 1个月
简介: 【5月更文挑战第12天】

Secure Shell(SSH)是一种用于在网络上安全传输数据的协议。默认情况下,SSH服务器使用22号端口。然而,在实际应用中,为了提高安全性,管理员可能会选择将SSH连接端口更改为非标准端口。这种做法可以有效减少暴力破解的风险,因为攻击者通常会针对默认端口进行攻击。

使用备用端口连接SSH还能提高服务器的安全性,因为大多数自动化扫描工具通常仅检查常见的端口,而使用非标准端口可以减少被扫描到的风险。

尽管使用备用端口连接SSH可以增加一定的安全性,但并不是绝对安全的方法。安全性的提高仍然依赖于其他配置和实践。在配置备用端口之前,确保您已经采取了其他安全措施,例如禁用root用户的远程登录、使用SSH密钥对等。

端口

在计算机网络中,端口是一个数字,用于标识特定的服务或应用程序。端口范围是从0到65535,其中0到1023是被系统保留的,称为"知名端口",而1024到49151是"注册端口",用于一些常见的应用。49152到65535是"动态或私有端口",用于客户端和临时服务。

默认情况下,SSH服务器使用22号端口。由于这是一个知名端口,它可能成为攻击者的目标。为了提高安全性,我们可以将SSH连接端口更改为一个非标准端口,例如2222。

选择备用端口

选择一个非标准端口用于SSH连接有助于降低被自动扫描工具和恶意用户检测到的风险。大多数攻击尝试针对默认端口22,因此更改端口可以减少这些自动化攻击的成功率。然而,需要注意的是,这并不是一种绝对安全的方法,而且不应作为唯一的安全措施。

在选择备用端口时,避免使用已知的端口,特别是那些用于其他服务的端口。确保所选端口没有被其他应用程序使用,并在系统上没有冲突。

避免使用过于显眼的数字,如1234或4321,以防止被轻松猜测。选择一个大一些的数字,例如2222或8022。总之,选择一个足够安全并且不容易被猜测到的备用端口。

更改SSH配置文件

在大多数Linux系统中,SSH的配置文件位于/etc/ssh/sshd_config。使用文本编辑器(如vinano)以root权限打开该文件:

sudo nano /etc/ssh/sshd_config

在打开的配置文件中,寻找Port参数。默认情况下,该参数设置为22。将其更改为您选择的备用端口,例如2222:

Port 2222

nano中,按下Ctrl + X,然后按下Y确认保存,最后按下Enter退出。在vi中,键入:wq并按下Enter

重启SSH服务

大多数现代Linux系统使用systemd作为服务管理器。要重新启动SSH服务,运行以下命令:

sudo systemctl restart sshd

重启SSH服务后,系统将使用新的备用端口配置。请确保您在更改端口之前确保您可以通过其他方式连接到服务器,以防出现配置错误导致的连接问题。

测试备用端口连接

现在,您可以尝试使用新的备用端口连接到SSH服务器。使用ssh命令并指定备用端口:

ssh -p 2222 username@your_server_ip

确保将2222替换为您选择的实际备用端口,username替换为您在服务器上的用户名,your_server_ip替换为服务器的实际IP地址或域名。

如果连接失败,可以考虑以下几个方面:

  • 防火墙设置: 确保您的防火墙允许通过新端口的SSH连接。您可以使用ufwiptables等工具进行配置。

  • 配置文件错误: 重新检查/etc/ssh/sshd_config文件,确保Port参数正确配置为您选择的备用端口。

  • SSH服务是否已重启: 确保在更改配置后已经重启了SSH服务。使用systemctl restart sshd命令。

其他相关配置

配置防火墙允许备用端口的访问

如果您的系统上启用了防火墙,确保防火墙允许通过备用端口的SSH连接。使用ufw作为防火墙管理器的例子:

sudo ufw allow 2222

请将2222替换为您选择的实际备用端口。如果您使用其他防火墙工具,请相应地配置。

日志监视和审计

在配置备用端口后,建议监视系统日志以确保没有异常连接尝试或其他问题。您可以查看SSH服务器的日志文件,通常位于/var/log/auth.log/var/log/secure

sudo cat /var/log/auth.log

查看日志,寻找与SSH连接相关的信息,并确保只有授权的用户能够成功连接。

使用SSH密钥对增加安全性

生成SSH密钥对

使用ssh-keygen命令生成SSH密钥对,如果您还没有生成过的话:

ssh-keygen -t rsa -b 4096

按照提示,选择保存密钥的位置并设置密码(可选)。此命令将生成一个私钥文件(通常为~/.ssh/id_rsa)和一个公钥文件(同目录下的.pub文件)。

将公钥添加到远程服务器

使用ssh-copy-id命令将您的公钥复制到远程服务器。替换usernameyour_server_ip为实际的用户名和服务器IP:

ssh-copy-id -p 2222 username@your_server_ip

这将在服务器上的~/.ssh/authorized_keys文件中添加您的公钥,允许使用私钥进行身份验证。

使用密钥对连接到备用端口

现在,您可以使用SSH密钥对连接到备用端口:

ssh -p 2222 username@your_server_ip

在连接时,您将被提示输入私钥文件的密码(如果您在生成密钥对时设置了密码)。通过使用SSH密钥对,可以增加连接的安全性,因为除非攻击者拥有相应的私钥,否则无法进行连接。

其他安全建议

禁用root用户远程登录

在SSH配置文件/etc/ssh/sshd_config中,将PermitRootLogin参数设置为no

PermitRootLogin no

这将禁止root用户通过SSH进行远程登录,从而增加了服务器的安全性。确保您有其他具有sudo权限的用户,以便进行系统管理任务。

使用fail2ban等工具防范暴力破解

安装并配置fail2ban等工具,以监视系统日志并阻止连续登录失败的尝试。这可以有效地防止暴力破解攻击。使用包管理器(例如aptyum)安装fail2ban:

sudo apt install fail2ban

配置文件通常位于/etc/fail2ban/jail.conf,您可以根据需要进行自定义设置。

目录
相关文章
|
25天前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
1月前
|
应用服务中间件 Linux 开发者
用的到linux-tomcat端口占用排查-Day5
通过本文的介绍,详细讲解了在CentOS 8系统上排查和解决Tomcat端口占用问题的方法。从使用 `netstat`、`lsof`和 `ss`命令检查端口占用情况,到使用 `ps`和 `top`命令查找和停止占用端口的进程,再到修改Tomcat端口配置,最后介绍了自动化脚本的方法。希望本文能帮助系统管理员和开发者有效地解决端口占用问题,确保Tomcat服务器的正常运行。
49 11
|
30天前
|
存储 NoSQL Linux
微服务2——MongoDB单机部署4——Linux系统中的安装启动和连接
本节主要介绍了在Linux系统中安装、启动和连接MongoDB的详细步骤。首先从官网下载MongoDB压缩包并解压至指定目录,接着创建数据和日志存储目录,并配置`mongod.conf`文件以设定日志路径、数据存储路径及绑定IP等参数。之后通过配置文件启动MongoDB服务,并使用`mongo`命令或Compass工具进行连接测试。此外,还提供了防火墙配置建议以及服务停止的两种方法:快速关闭(直接杀死进程)和标准关闭(通过客户端命令安全关闭)。最后补充了数据损坏时的修复操作,确保数据库的稳定运行。
78 0
|
2月前
|
Linux
SecureCRT连接Linux时乱码问题
本文详细介绍了在使用SecureCRT连接Linux服务器时出现乱码问题的解决方法,包括设置SecureCRT字符编码、检查和配置Linux服务器字符编码、调整终端设置等。通过这些方法,您可以有效解决SecureCRT连接Linux时的乱码问题,确保正常的终端显示和操作。希望本文能帮助您在实际操作中更好地解决类似问题,提高工作效率。
78 17
|
4月前
|
关系型数据库 MySQL Linux
Linux下mysql数据库的导入与导出以及查看端口
本文详细介绍了在Linux下如何导入和导出MySQL数据库,以及查看MySQL运行端口的方法。通过这些操作,用户可以轻松进行数据库的备份与恢复,以及确认MySQL服务的运行状态和端口。掌握这些技能,对于日常数据库管理和维护非常重要。
200 8
|
5月前
|
数据库连接 Linux Shell
Linux下ODBC与 南大通用GBase 8s数据库的无缝连接配置指南
本文详细介绍在Linux系统下配置GBase 8s数据库ODBC的过程,涵盖环境变量设置、ODBC配置文件编辑及连接测试等步骤。首先配置数据库环境变量如GBASEDBTDIR、PATH等,接着修改odbcinst.ini和odbc.ini文件,指定驱动路径、数据库名称等信息,最后通过catalog.c工具或isql命令验证ODBC连接是否成功。
|
5月前
|
安全 Linux 网络安全
Linux 开放的端口太多了?教你一招找出所有开放的端口,然后直接干掉!
在 Linux 系统中,端口管理至关重要。本文介绍了如何使用 `netstat`、`lsof` 和 `nmap` 等工具查找开放端口,并通过关闭相关服务、修改防火墙规则或禁用网络接口来关闭这些端口,以提高系统安全性。注意不要随意关闭重要端口,谨慎操作并备份数据。
131 3
|
6月前
|
运维 Linux
Linux查找占用的端口,并杀死进程的简单方法
通过上述步骤和命令,您能够迅速识别并根据实际情况管理Linux系统中占用特定端口的进程。为了获得更全面的服务器管理技巧和解决方案,提供了丰富的资源和专业服务,是您提升运维技能的理想选择。
284 1
|
19天前
|
网络协议 安全 应用服务中间件
云服务器怎么开启被关闭的端口?手把手教你开启端口
在使用云服务器时,若发现某些服务无法访问,可能是端口被关闭。本文介绍了端口关闭的原因、检查方法及开启步骤。原因包括初始设置限制、防火墙规则和外部网络策略;可通过netstat或ss命令检查端口状态,用ufw、iptables或firewalld调整防火墙规则。最后提供了解决常见问题的建议,确保端口正常开放并可供外网访问。
255 9
|
2月前
|
SQL 关系型数据库 MySQL
云服务器常用端口作用
了解云服务器常用端口的作用有助于高效管理资源、快速定位问题及更好地使用云服务。常见端口包括:21(FTP,文件传输)、22(SSH,远程连接Linux)、25(SMTP,发送邮件)、80(HTTP,网页服务)、110/143(POP3/IMAP,接收邮件)、443(HTTPS,加密网页)、1433(SQL Server)、3306(MySQL)、3389(RDP,远程访问Windows桌面)和8080(代理服务)。
80 2