如何在 Linux 中更改 SSH 端口

2023-11-06

默认情况下,SSH 侦听端口 22。更改默认 SSH 端口可以降低自动攻击的风险,从而为您的服务器增加了额外的安全层。

本教程介绍如何更改 Linux 中的默认 SSH 端口。我们还将向您展示如何配置防火墙以允许访问新的 SSH 端口。

保护服务器免受攻击的最佳方法是将防火墙配置为仅允许受信任的主机访问端口 22,并设置一个基于 SSH 密钥的身份验证 .

更改 SSH 端口#

更改映像的 SSH 端口是一项简单的任务。您所需要做的就是编辑 SSH 配置文件并重新启动服务。

以下部分介绍如何更改 Linux 系统上的 SSH 端口。

1. 选择新的端口号#

在Linux中,1024以下的端口号是为众所周知的服务保留的,只能由root绑定。虽然您可以使用 1-1024 范围内的端口作为 SSH 服务以避免将来出现端口分配问题,但建议选择 1024 以上的端口。

本例中将 SSH 端口更改为 5522,您可以选择任何您想要的端口。

2. 调整防火墙#

在更改 SSH 端口之前,您需要调整防火墙以允许新 SSH 端口上的流量。

如果您使用的是 Ubuntu 默认防火墙配置工具 UFW,请运行以下命令打开新的 SSH 端口:

sudo ufw allow 5522/tcp

在CentOS中,默认的防火墙管理工具是FirewallD。要打开新端口,请运行:

sudo firewall-cmd --permanent --zone=public --add-port=5522/tcpsudo firewall-cmd --reload

CentOS用户还需要调整SELinux规则:

sudo semanage port -a -t ssh_port_t -p tcp 5522

如果您使用 iptables 作为防火墙,要打开新端口,请运行:

sudo iptables -A INPUT -p tcp --dport 5522 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

3. 配置SSH#

打开SSH配置文件/etc/ssh/sshd_config使用您的文本编辑器:

sudo vim /etc/ssh/sshd_config

Search对于以以下开头的行Port 22。在大多数情况下,这一行以哈希开头 (#) 特点。删除哈希值#并输入新的 SSH 端口号:

/etc/ssh/sshd_config
Port 5522

修改 SSH 配置文件时要格外小心。错误的配置可能会导致SSH服务无法启动。

完成后,保存文件并重新启动 SSH 服务以应用更改:

sudo systemctl restart ssh

在 CentOS 中,ssh 服务被命名为sshd:

sudo systemctl restart sshd

验证 SSH 守护进程是否为倾听在新端口 5522 上,键入:

ss -an | grep 5522

输出应如下所示:

tcp   LISTEN      0        128            0.0.0.0:5522           0.0.0.0:*
tcp   ESTAB       0        0      192.168.121.108:5522     192.168.121.1:57638
tcp   LISTEN      0        128               [::]:5522              [::]:*

使用新的 SSH 端口#

要指定端口,请调用ssh命令后跟-p <port_number> option:

ssh -p 5522 username@remote_host_or_ip

如果您经常连接到多个系统,则可以通过在中定义所有连接来简化工作流程SSH 配置文件 .

结论#

在本教程中,您学习了如何更改 Linux 服务器上的 SSH 端口。您还应该设置一个基于 SSH 密钥的身份验证无需输入密码即可连接到您的 Linux 服务器。

如果您有任何疑问,请随时发表评论。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Linux 中更改 SSH 端口 的相关文章

  • 64 位上的 ASLR 和内存布局:是否仅限于规范部分 (128 TiB)?

    当加载启用 ASLR 的 PIE 可执行文件时 Linux 是否会限制程序段到规范部分 最多 0000 7fff ffff ffff 的映射 还是会使用完整的较低部分 起始位 0 显然 Linux 不会给你的进程提供不可用的地址 这会导致它
  • 如何避免使用 WinApi.Windows 的 Delphi 应用程序中的 dll 劫持

    Delphi 最新版本使用各种系统 dll 的静态链接 例如 WinApi Windows 单元中的 version dll 这会导致在单元初始化之前加载 version dll 这会打开一个安全漏洞 可以通过将受感染的 version d
  • MySQL Workbench(版本 6.0.8)SSH 身份验证问题

    我正在尝试通过 SSH 通过计算机 Y 连接到主机 X 上的 MySQL 服务器 相同的设置 但 MySQL 工作台的版本较旧 适用于我的另一个机器 CentOS 6 3 但是 相同的设置在我的 CentOS 6 5 上不起作用 我尝试使用
  • 是否可以执行扩展名为 file.php.jpg 的 PHP?

    网站合法文件image upload php用于上传文件89471928047 php jpg这是简单的文件上传表单 将 tmp 文件复制到同一图像文件夹 他们如何设法执行它并通过它上传其他文件 有人知道这怎么可能吗 PHP version
  • 处理 PHP 中的会话劫持

    阅读了 Stackoverflow 上有关会话劫持的许多问题 我发现验证用户会话的唯一 解决方案 是检查用户代理 这是一个薄弱的保护层 我什至懒得去检查实施它 所以 我想知道你们实施了哪些解决方案 您是否使用 PHP 的本机会话或者是否有更
  • 将旧密码转移到新的哈希算法?

    我正在将站点切换到 Rails 这是一个拥有超过 5 万用户的大型网站 问题是 现有的密码哈希方法是极其虚弱的 我有两个选择 1 切换到新算法 为每个人生成随机密码 然后通过电子邮件将这些密码发送给他们 并要求立即更改 2 实现新算法 但使
  • 如何安全地存储和处理 JWT 密钥

    读完这篇文章后 JWT 什么是好的密钥 以及如何将其存储在 Node js Express 应用程序中 https stackoverflow com questions 30089604 jwt whats a good secret k
  • 一个 Guice 就绪的安全框架?

    有没有人见过一个为与 Guice 一起工作而编写的框架 或者一个将现有安全系统 即 Acegi 与 Guice 集成的库 到目前为止我发现了以下内容 http code google com p warp security http cod
  • 正确使用 EncryptedSharedPreferences

    Android 最近发布了 EncryptedSharedPreferences 它自动加密 SharedPreferences 键 值数据 虽然这很好 但我发现我可以简单地连接 API 调用并检索解密的值 除了在调用 EncryptedS
  • 为什么 cygwin 无法读取我的主目录中的 .ssh/config 文件?

    我正在使用 cygwin 并且正在尝试设置 ssh config 文件 Cygwin 的文件夹位于我的 C 驱动器中 我的主目录是 C Users USER 我注意到 当我编辑 C Users USER ssh config 时 cygwi
  • 此 JavaScript 如何在 Firefox 中打开 Windows 设置?

    新安装 Firefox 45 开发版后 我看到了这个页面 它有一个按钮 让我们开始吧 单击该按钮时 会以某种方式打开选择默认应用程序Windows 10 中的设置页面 这是怎么做到的 我无法通过开发者控制台在该页面上迷宫般的代码中找到任何内
  • 使用鼠标检测的反验证码

    我想知道是否可以为仅使用 javascript 的表单创建一个安全的人体检测机制 不使用验证码 来检测鼠标移动 因为 jquery 或操作系统代码都可以移动鼠标 我是这么告诉的 这是我的计划 使用 jQuery 我可以检测鼠标是否已移动 然
  • 遭受xss攻击后如何恢复站点?

    最近我正在研究XSS攻击以及它们对网站的破坏性有多大 让我惊讶的是 网络 even SO 充满了关于如何防止xss攻击但没有相关资源说明如何在网站受到 xss 攻击后恢复网站 我遇到过一些事情 比如 将备份网站代码上传回服务器 下载整个网站
  • 如何为 VS Code SSH Remote 配置不同的 shell?

    当我连接到 VS Code 集成终端时 如何更改使用的 shell远程 ssh 工作区 https code visualstudio com docs remote ssh 添加 Matt Bierner 的答案 较新的版本vscode现
  • 自定义代码访问安全属性

    我创建了以下属性 Serializable AttributeUsage AttributeTargets Class AttributeTargets Method AllowMultiple true Inherited true pu
  • paramiko ssh.connect - 要发送什么参数?

    我真的很新python and ssh 我正在尝试编写一个简单的程序来打开ssh连接使用python 我已经有了paramiko 但我遇到的问题是 使用终端我使用以下命令打开我的ssh ssh username email protecte
  • 为什么 RFC 6797 禁止通过纯 HTTP 响应发送 Strict-Transport-Security 标头?

    在阅读 HSTS 严格传输安全 规范时 我看到了一条禁令第 7 2 节 https www rfc editor org rfc rfc6797 section 7 2禁止在通过 http 而不是 https 访问时发送标头 HSTS 主机
  • 本地主机中的 Ansible SSH 连接错误

    当我针对本地主机启动我的剧本时 出现此错误 TASK setup fatal 127 0 0 1 UNREACHABLE gt changed false msg SSH encountered an unknown error durin
  • RSA SignatureException:签名长度不正确

    我在签署 rsa 签名时遇到问题 我有一个用私钥加密的签名 然而 当我尝试使用公钥验证它时遇到问题 我得到以下异常 java security SignatureException Signature length not correct
  • 保护 REST 和 JSON

    我想利用 RESTful 架构构建提供 JSON 数据的 Web 服务 但我只想要我自己的客户端应用程序可以从我的网络服务请求 基本上 我的 Web 服务包含不供公众使用的敏感数据 但我想以这种方式构建它 以便我可以构建连接到我的 Web

随机推荐

  • Linux 中如何统计目录中的文件数

    虽然不是很常见 但有时您需要找出给定目录中有多少个文件 例如 如果您用完inodes在 Linux 系统上 您需要查找哪个目录包含数千或数百万个文件 在本文中 我们将向您展示几种在 Linux 中查找目录中文件数量的不同方法 计算目录中的文
  • 如何在 Debian 10 Linux 上安装 MongoDB

    MongoDB 是一个免费的开源文档数据库 它属于 NoSQL 数据库家族 与 MySQL 和 PostgreSQL 等传统的基于表的 SQL 数据库不同 在 MongoDB 中 数据存储在灵活的 类似 JSON字段可能因文档而异的文档 它
  • 如何在 Ubuntu 18.04 上安装和配置 Redmine

    Redmine 是最流行的开源项目管理和问题跟踪软件工具之一 它是跨平台和跨数据库的 构建在 Ruby on Rails 框架之上 Redmine包括对多个项目 wiki 问题跟踪系统 论坛 日历 电子邮件通知等的支持 本教程介绍如何在 U
  • 如何在 CentOS 8 上使用 VSFTPD 设置 FTP 服务器

    FTP 文件传输协议 是一种客户端 服务器网络协议 允许用户与远程计算机传输文件 有许多可用于 Linux 的开源 FTP 服务器 最流行和最常用的服务器是PureFTPd ProFTPD and vsftpd 在本教程中 我们将在 Cen
  • 如何在 Ubuntu 20.04 上制作 Minecraft 服务器

    我的世界 是有史以来最受欢迎的游戏之一 这是一款沙盒视频游戏 玩家可以探索无限的世界并建造不同的结构 从简单的房屋到高耸的摩天大楼 本教程介绍如何在 Ubuntu 20 04 上创建 Minecraft 服务器 我们将使用 Systemd
  • 如何通过 SSH 隧道连接 MySQL

    默认情况下 MySQL 服务器仅侦听本地主机 这意味着它只能由同一主机上运行的应用程序访问 但是 在某些情况下 您可能希望从远程位置连接到服务器 一种选择是配置MySQL服务器允许远程连接 但这需要管理权限 并且可能会导致安全风险 更安全的
  • Bash 数组

    数组是最常用和基本的数据结构之一 您可以将数组视为一个变量 其中可以存储多个变量 在本文中 我们将介绍 Bash 数组 并解释如何在 Bash 脚本中使用它们 Bash 数组 Bash 支持一维数字索引和关联数组类型 数值数组使用整数引用
  • 如何在 Debian 10 上设置 Apache 虚拟主机

    Apache 虚拟主机允许您在一台计算机上运行多个网站 使用虚拟主机 您可以指定站点文档根 包含网站文件的目录 为每个站点创建单独的安全策略 使用不同的 SSL 证书等等 本文介绍如何在 Debian 10 服务器上设置 Apache 虚拟
  • 配置 Apache 错误和访问日志

    Apache 是一个开源 跨平台的 HTTP 服务器 它具有许多强大的功能 可以通过各种模块进行扩展 管理时Apache对于 Web 服务器 您将执行的最常见的任务之一是检查日志文件 了解如何配置和读取日志在排除服务器或应用程序问题时非常有
  • 如何在 Ubuntu 20.04 上设置 SSH 密钥

    Secure Shell SSH 是一种用于在客户端和服务器之间创建安全连接的网络协议 通过 SSH 您可以在远程计算机上运行命令 创建隧道 转发端口等 SSH 支持多种身份验证机制 最常见的两种是基于密码和公钥的身份验证 使用公钥进行认证
  • 巴什赫里多克

    在编写 shell 脚本时 您可能会遇到需要将多行文本或代码块传递给交互式命令的情况 例如tee cat or sftp 在 Bash 和 Zsh 等其他 shell 中 Here 文档 Heredoc 是一种重定向类型 允许您将多行输入传
  • 如何在 Ubuntu 18.04 上安装 Xrdp 服务器(远程桌面)

    Xrdp 是 Microsoft 远程桌面协议 RDP 的开源实现 允许您以图形方式控制远程系统 使用 RDP 您可以登录到远程计算机并创建真实的桌面会话 就像登录到本地计算机一样 本教程介绍如何在 Ubuntu 18 04 上安装和配置
  • 如何在 CentOS 7 上安装和配置 GitLab

    GitLab 是一个基于网络的开源Git存储库管理器编写为Ruby包括 wiki 问题管理 代码审查 监控以及持续集成和部署 它使开发人员能够构建 部署和运行他们的应用程序 GitLab 提供三种不同版本 社区版 CE 企业版 EE 和 G
  • 如何在 Linux 中获取目录的大小

    使用列出目录内容时ls命令 您可能已经注意到目录的大小几乎总是 4096 字节 4 KB 这是磁盘上用于存储目录元信息的空间大小 而不是它包含的内容 您要用来获取目录的实际大小的命令是du 它是 磁盘使用情况 的缩写 获取目录的大小 The
  • Linux 中的 awk 命令及示例

    Awk 是一种通用脚本语言 专为高级文本处理而设计 它主要用作报告和分析工具 与大多数其他过程性编程语言不同 awk 是数据驱动的 这意味着您定义一组要针对输入文本执行的操作 它获取输入数据 对其进行转换 并将结果发送到标准输出 本文涵盖了
  • 如何在 Debian 9 上安装 Minecraft 服务器

    我的世界 是有史以来最受欢迎的游戏之一 这是一款关于建造各种结构并进行冒险的沙盒视频游戏 本教程介绍了如何在 Debian 9 上安装和配置 Minecraft 服务器 我们将使用 Systemd 来运行 Minecraft 服务器和mcr
  • 如何在 Ubuntu 18.04 上安装 Opera Web 浏览器

    Opera是世界上最流行的跨平台网络浏览器之一 它是专为现代网络构建的快速 易于使用且安全的浏览器 Opera 基于与Chrome并提供类似的浏览体验 并允许您从 Google 官方网上应用店安装 Chrome 扩展程序 它具有内置功能 例
  • 如何在 Vim / Vi 中显示行号

    Vim Vi 是许多软件开发人员和 L inux 系统管理员首选的文本编辑器 默认情况下 Vim 不显示行号 但可以轻松打开它们 Vim 支持三种行号模式 可帮助您浏览文件 除了标准的绝对行编号之外 Vim 还支持相对和混合行编号模式 本文
  • 如何在 CentOS 7 上安装 Webmin

    Webmin是一个用于 Linux UNIX 系统管理的开源 Web 控制面板 Webmin 允许您管理用户 组 磁盘配额以及配置最流行的服务 包括 Web FTP 电子邮件和数据库服务器 本教程介绍如何在 CentOS 7 服务器上安装
  • 如何在 Linux 中更改 SSH 端口

    默认情况下 SSH 侦听端口 22 更改默认 SSH 端口可以降低自动攻击的风险 从而为您的服务器增加了额外的安全层 本教程介绍如何更改 Linux 中的默认 SSH 端口 我们还将向您展示如何配置防火墙以允许访问新的 SSH 端口 保护服