linux ssh 增加访问端口

news2025/1/23 0:22:16

在 Linux 系统中,SSH 默认使用 22 端口。为了增强安全性或满足特定需求,可以通过修改 SSH 配置来增加或更改 SSH 访问端口。以下是具体步骤:


1. 修改 SSH 配置文件

SSH 的配置文件通常位于 /etc/ssh/sshd_config。使用文本编辑器(如 vimnano)打开该文件:

sudo vim /etc/ssh/sshd_config

2. 增加或修改端口

在配置文件中找到 Port 配置项。如果不存在,可以手动添加。例如,增加一个额外的端口 2222

Port 22
Port 2222
  • 可以同时指定多个端口,SSH 会监听所有指定的端口。
  • 如果需要完全替换默认端口,可以将 Port 22 注释掉或删除,只保留新端口。

3. 保存并退出编辑器

  • vim 中,按 Esc,然后输入 :wq 保存并退出。
  • nano 中,按 Ctrl + O 保存,然后按 Ctrl + X 退出。

4. 更新防火墙规则

如果系统启用了防火墙(如 ufwfirewalld),需要允许新端口通过防火墙。

使用 ufw(Ubuntu/Debian)

sudo ufw allow 2222/tcp
sudo ufw reload

使用 firewalld(CentOS/RHEL)

sudo firewall-cmd --permanent --add-port=2222/tcp
sudo firewall-cmd --reload

使用 iptables

sudo iptables -A INPUT -p tcp --dport 2222 -j ACCEPT
sudo service iptables save

5. 重启 SSH 服务

修改配置后,需要重启 SSH 服务使更改生效:

sudo systemctl restart sshd

6. 测试新端口

使用 ssh 命令测试新端口是否生效:

ssh username@your_server_ip -p 2222
  • username 替换为你的用户名,your_server_ip 替换为服务器 IP 地址。
  • 如果连接成功,说明新端口配置正确。

7. (可选)禁用默认端口

如果希望完全禁用默认的 22 端口,可以在 SSH 配置文件中注释掉或删除 Port 22,然后重启 SSH 服务。


注意事项

  1. 备份配置文件:在修改前,建议备份 SSH 配置文件:
    sudo cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak
    
  2. 确保新端口未被占用:使用以下命令检查端口是否已被占用:
    sudo netstat -tuln | grep 2222
    
  3. 防止锁定自己:在测试新端口之前,确保当前 SSH 会话不会断开,或者通过其他方式(如控制台)访问服务器,以防配置错误导致无法连接。

通过以上步骤,你可以成功增加或更改 SSH 访问端口,提升系统的安全性。

遇到问题1

修改ssh端口后,启动失败失败,报错error: Bind to port 2222 on :: failed: Permission denied.

(base) [root@node-01 wangzy-p]# systemctl status sshd
● sshd.service - OpenSSH server daemon
   Loaded: loaded (/usr/lib/systemd/system/sshd.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2025-01-21 00:29:06 CST; 1s ago
     Docs: man:sshd(8)
           man:sshd_config(5)
 Main PID: 147506 (sshd)
    Tasks: 1
   Memory: 1.1M
   CGroup: /system.slice/sshd.service
           └─147506 /usr/sbin/sshd -D

Jan 21 00:29:06 node-01 systemd[1]: Starting OpenSSH server daemon...
Jan 21 00:29:06 node-01 sshd[147506]: /etc/ssh/sshd_config line 10: Deprecated option RSA...ion
Jan 21 00:29:06 node-01 sshd[147506]: Could not load host key: /etc/ssh/ssh_host_dsa_key
Jan 21 00:29:06 node-01 sshd[147506]: error: Bind to port 2222 on 0.0.0.0 failed: Permis...ed.
Jan 21 00:29:06 node-01 sshd[147506]: error: Bind to port 2222 on :: failed: Permission ...ed.
Jan 21 00:29:06 node-01 sshd[147506]: Server listening on 0.0.0.0 port 22.

解决方案:

iptables -F
setenforce 0
systemctl restart sshd

这三行代码分别用于 清空防火墙规则关闭 SELinux 的强制模式重启 SSH 服务。以下是每行代码的详细解释:


  1. iptables -F
  • 作用:清空 iptables 的所有防火墙规则。
  • 解释
    • iptables 是 Linux 系统中用于管理网络流量(如防火墙规则)的工具。
    • -F 参数表示 flush,即清空指定链(chain)中的所有规则。如果不指定链,默认清空所有链(如 INPUTOUTPUTFORWARD 等)。
    • 执行后,所有自定义的防火墙规则将被删除,系统将恢复到默认的允许所有流量的状态。
  • 使用场景
    • 当需要快速清除所有防火墙规则时。
    • 在调试网络问题时,排除防火墙规则的影响。

  1. setenforce 0
  • 作用:将 SELinux 的模式设置为 宽松模式(Permissive Mode)
  • 解释
    • SELinux(Security-Enhanced Linux)是 Linux 的一个安全模块,用于提供更严格的访问控制。
    • SELinux 有三种模式:
      1. Enforcing:强制模式,所有违反策略的操作都会被阻止并记录。
      2. Permissive:宽松模式,违反策略的操作不会被阻止,但会记录日志。
      3. Disabled:完全禁用 SELinux。
    • setenforce 0 将 SELinux 设置为宽松模式,允许所有操作,但仍会记录日志。
  • 使用场景
    • 当 SELinux 阻止某些操作时,可以临时设置为宽松模式以排查问题。
    • 在调试或测试环境中,避免 SELinux 的严格限制。

  1. systemctl restart sshd
  • 作用:重启 SSH 服务。
  • 解释
    • systemctl 是 Linux 系统中用于管理系统服务的命令。
    • sshd 是 SSH 服务的名称,负责处理远程登录请求。
    • restart 参数表示重启服务(先停止,再启动)。
    • 执行后,SSH 服务会重新加载配置文件并重新启动。
  • 使用场景
    • 修改 SSH 配置文件(如 /etc/ssh/sshd_config)后,需要重启服务使更改生效。
    • 当 SSH 服务出现问题时,重启服务以恢复功能。

注意:

  1. iptables -F 会清空所有防火墙规则,可能导致系统暴露在网络中。建议在执行前备份规则,或确保系统处于安全环境中。
  2. setenforce 0 是临时修改 SELinux 模式,重启系统后会恢复为原模式。如果需要永久修改,可以编辑 /etc/selinux/config 文件。
  3. systemctl restart sshd 会中断当前的 SSH 连接。如果正在通过 SSH 操作服务器,建议使用 systemctl reload sshd 重新加载配置而不中断服务。

通过这三行代码,可以快速清空防火墙规则、关闭 SELinux 的强制模式并重启 SSH 服务,适用于调试或配置系统时的常见操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2280613.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

你还在用idea吗

从VIM、Emacs,到eclipse、Jetbrains, 再到VSCode,过去的三十年时间,出现了这三代IDE产品。现在属于AI的时代来了,最新一代的产品像Cursor、Windsurf,就在昨天,字节跳动发布了最新的IDE,就叫Trae…

Linux TCP 之 RTT 采集与 RTO 计算

我们来看看 Linux TCP 采集 RTT 的函数 tcp_rtt_estimator,看注释,充满了胶着。 但在那个谨慎的年代,这些意味着什么? RTT 最初仅用于 RTO 的计算而不是用于调速,RTO 的计算存在两个问题,如果过估&#x…

学习ASP.NET Core的身份认证(基于JwtBearer的身份认证9)

测试数据库中只有之前记录温湿度及烟雾值的表中数据较多,在该数据库中增加AppUser表,用于登录用户身份查询,数据库表如下所示:   项目中安装SqlSugarCore包,然后修改控制器类的登录函数及分页查询数据函数&#xff…

leetcode-75-颜色分类

文章目录 1. 归并排序2. 计数3. 按照题目要求,原地腾挪 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地 对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表…

html,css,js的粒子效果

这段代码实现了一个基于HTML5 Canvas的高级粒子效果&#xff0c;用户可以通过鼠标与粒子进行交互。下面是对代码的详细解析&#xff1a; HTML部分 使用<!DOCTYPE html>声明文档类型。<html>标签内包含了整个网页的内容。<head>部分定义了网页的标题&#x…

学习记录之原型,原型链

构造函数创建对象 Person和普通函数没有区别&#xff0c;之所以是构造函数在于它是通过new关键字调用的&#xff0c;p就是通过构造函数Person创建的实列对象 function Person(age, name) {this.age age;this.name name;}let p new Person(18, 张三);prototype prototype n…

go语言zero框架通过chromedp实现网页在线截图的设计与功能实现

在 GoZero 框架中实现网页在线截图的功能&#xff0c;可以通过集成 chromedp 库来控制 Chrome 浏览器进行截图。chromedp 是一个基于 Chrome DevTools 协议的 Go 包&#xff0c;可以用来在 Go 程序中模拟浏览器操作&#xff0c;如页面截图、DOM 操作、表单提交等。 下面是一个…

以 RFID 为钥,开启民兵装备管理的科技之门

民兵配备的武器及装备涵盖了各式武器、弹药及军事技术设备&#xff0c;其管理的优良直接决定了民兵的作战效能。鉴于民兵装备普遍面临老化、维护支援不充分等问题&#xff0c;迫切需要迅速建立完善的民兵装备管理新体系。这一转变将推动民兵装备由数量扩张转向质量提升&#xf…

电脑办公技巧之如何在 Word 文档中添加文字或图片水印

Microsoft Word是全球最广泛使用的文字处理软件之一&#xff0c;它为用户提供了丰富的编辑功能来美化和保护文档。其中&#xff0c;“水印”是一种特别有用的功能&#xff0c;它可以用于标识文档状态&#xff08;如“草稿”或“机密”&#xff09;、公司标志或是版权信息等。本…

llama-factory实战: 基于qwen2.5-7b 手把手实战 自定义数据集清洗 微调

基于qwen2.5 手把手实战 自定义数据集 微调&#xff08;llama-factory&#xff09; 准备工作1.数据集准备&#xff08;例:民法典.txt&#xff09;2.服务器准备&#xff08;阿里云 DSW 白嫖&#xff09;3.环境配置pip 升级模型下载微调助手 4.数据集处理脚本文件4.1文本分割(ber…

微透镜阵列精准全检,白光干涉3D自动量测方案提效70%

广泛应用的微透镜阵列 微透镜是一种常见的微光学元件&#xff0c;通过设计微透镜&#xff0c;可对入射光进行扩散、光束整形、光线均分、光学聚焦、集成成像等调制&#xff0c;进而实现许多传统光学元器件难以实现的特殊功能。 微透镜阵列&#xff08;Microlens Array&#x…

详解单片机学的是什么?(电子硬件)

大家好&#xff0c;我是山羊君Goat。 单片机&#xff0c;对于每一个硬件行业的从业者或者在校电子类专业的学生&#xff0c;相信对于这个名词都不陌生&#xff0c;但是掌没掌握就另说了。 那单片机到底学的是什么呢&#xff1f; 其实单片机在生活中就非常常见&#xff0c;目前…

基于Docker的Spark分布式集群

目录 1. 说明 2. 服务器规划 3. 步骤 3.1 要点 3.2 配置文件 3.2 访问Spark Master 4. 使用测试 5. 参考 1. 说明 以docker容器方式实现apache spark计算集群&#xff0c;能灵活的增减配置与worker数目。 2. 服务器规划 服务器 (1master, 3workers) ip开放端口备注ce…

9. 神经网络(一.神经元模型)

首先&#xff0c;先看一个简化的生物神经元结构&#xff1a; 生物神经元有多种类型&#xff0c;内部也有复杂的结构&#xff0c;但是可以把单个神经元简化为3部分组成&#xff1a; 树突&#xff1a;一个神经元往往有多个树突&#xff0c;用于接收传入的信息。轴突&#xff1a;…

web-view环境下,H5页面打开其他小程序

在Web-view环境下&#xff0c;H5页面无法直接打开其他小程序。正确的实现方式是先从H5页面跳转回当前小程序&#xff0c;再由当前小程序跳转到目标小程序。具体实现方法如下&#xff1a; H5页面跳转回小程序时&#xff0c;调用wx.miniProgram.navigateTo()方法。 小程序跳转到…

数据恢复常用方法(三)如何辨别固态硬盘故障类型

数据恢复首先需要辨别固态硬盘故障类型&#xff0c;只有先确认故障类型&#xff0c;才能进行下一步动作 如下是一种常见的场景&#xff0c;固态硬盘无法识别&#xff0c;接入电源与数据线&#xff0c;电脑的磁盘管理不显示任何信息。 第一步&#xff1a;确认硬件状态&#xff…

Android Studio打包APK

1.导出APK安装包 如果是首次打包&#xff0c;Create new 单击蓝色对话框右边文件夹&#x1f4c2;图标 &#xff0c;选择密钥保存路径&#xff0c;然后在下方File name对话框中填写您想要名称&#xff0c;再点击OK回到密钥创建对话框。 在此对话框中填写密码&#xff08;Passwo…

当使用 npm 时,出现 `certificate has expired` 错误通常意味着请求的证书已过期。

当使用 npm 时&#xff0c;出现 certificate has expired 错误通常意味着请求的证书已过期。这可能是由于以下几种情况&#xff1a; 网络代理问题&#xff1a;如果使用了网络代理&#xff0c;代理服务器的证书可能过期或配置有误。系统时间错误&#xff1a;系统时间不准确可能导…

AWS IAM用户启用MFA认证

1. 进入IAM界面&#xff0c;点击Add user 2. 创建用户 3. 添加用户权限&#xff0c;例如这里赋予power user权限 4. 用手机下载MFA软件&#xff0c;进入App Store搜索mfa即可得到Google Authenticator&#xff0c;点击安装 5. 用户创建后&#xff0c;进入点击用户名进入Securi…

学习ASP.NET Core的身份认证(基于JwtBearer的身份认证8)

为进一步测试通过请求头传递token进行身份验证&#xff0c;在main.htm中增加layui的数据表格组件&#xff0c;并调用后台服务分页显示数据&#xff0c;后台分页查询数据接口如下所示&#xff08;测试时&#xff0c;直接将数据写死到代码中&#xff0c;没有查询数据库&#xff0…