如何安全开启Linux远程访问?

常用远程访问方式

  1. SSH(推荐)
    加密命令行访问,适用于大多数Linux发行版(Ubuntu/CentOS/Debian等)。
  2. VNC
    图形界面远程控制,适合需要桌面环境的场景。
  3. RDP(通过xrdp)
    兼容Windows远程桌面协议,实现图形化登录。

SSH远程访问配置(以Ubuntu为例)

步骤1:安装SSH服务端

sudo apt update && sudo apt install openssh-server  # Ubuntu/Debian
sudo systemctl start sshd && sudo systemctl enable sshd  # 启动并开机自启

CentOS/Fedora 使用:sudo yum install openssh-server

步骤2:配置防火墙

sudo ufw allow 22  # 开放默认SSH端口(22)
sudo ufw reload    # 应用规则

若使用firewalld(CentOS):
sudo firewall-cmd --permanent --add-service=ssh && sudo firewall-cmd --reload

步骤3:客户端连接

  • Linux/macOS终端
    ssh 用户名@服务器IP -p 22
  • Windows
    使用 PuTTY 或 PowerShell 的 ssh 命令。

VNC图形化远程配置

步骤1:安装桌面环境与VNC服务

sudo apt install ubuntu-desktop tightvncserver  # 安装GNOME桌面+VNC

步骤2:设置VNC密码及配置文件

vncserver  # 首次运行生成密码(保存在 ~/.vnc/passwd)
echo 'geometry=1920x1080' > ~/.vnc/config  # 设置分辨率

步骤3:启动服务并开放端口

vncserver :1  # 启动显示号为1的会话
sudo ufw allow 5901  # 开放VNC端口(5900+显示号)

客户端使用 TigerVNC 或 RealVNC 连接 服务器IP:1


RDP远程桌面配置(通过xrdp)

sudo apt install xrdp  # 安装xrdp
sudo systemctl enable xrdp --now  # 启动服务
sudo ufw allow 3389    # 开放RDP默认端口

Windows直接使用“远程桌面连接”,输入Linux服务器IP。


安全加固措施(必做!)

  1. 修改默认端口(避免暴力破解)
    编辑SSH配置文件:

    sudo nano /etc/ssh/sshd_config

    修改:Port 2222 → 重启服务 sudo systemctl restart sshd
    防火墙同步开放新端口。

  2. 禁用root登录
    sshd_config中设置:

    PermitRootLogin no
  3. 强制密钥认证(比密码更安全)

    PasswordAuthentication no
    PubkeyAuthentication yes

    生成密钥对:ssh-keygen -t ed25519
    上传公钥:ssh-copy-id -p 端口 用户@IP

  4. 启用Fail2Ban防暴力破解

    sudo apt install fail2ban
    sudo systemctl enable fail2ban

常见问题解决

  • 连接超时
    检查防火墙规则、云服务商安全组(如AWS/Aliyun需后台放行端口)。

  • VNC黑屏
    编辑 ~/.vnc/xstartup,末尾添加:

    unset DBUS_SESSION_BUS_ADDRESS
    exec /usr/bin/gnome-session &
  • SSH “Permission denied”
    确认用户名/IP正确;检查/etc/ssh/sshd_configAllowUsers是否限制账户。


开启Linux远程访问的核心步骤为:安装服务 → 配置端口 → 安全加固,优先选择SSH并配合密钥认证,避免使用root账户,操作前务必备份配置文件(如sshd_config),任何修改后重启服务生效,定期更新系统及安全补丁,可大幅降低风险。

引用说明

  • OpenSSH官方文档:https://www.openssh.com/manual.html
  • Ubuntu服务器指南:https://ubuntu.com/server/docs
  • Fail2Ban配置参考:https://www.fail2ban.org/wiki/index.php/Main_Page
    本文基于Linux通用实践编写,适用于主流发行版(2025年验证)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9075.html

(0)
酷番叔酷番叔
上一篇 2025年7月28日 19:52
下一篇 2025年7月28日 20:18

相关推荐

  • 如何理解核心并开发关键?

    核心理解是明确用户需求与产品本质,开发则是构建针对性解决方案,实现核心功能与价值。

    2025年7月26日
    4700
  • Linux如何查看MySQL是否安装成功?

    在Linux系统中,MySQL安装完成后,需通过多步骤验证安装是否成功,避免因安装不完整或配置错误导致后续使用问题,以下从服务状态、软件包、可执行文件、配置文件、日志、连接测试及版本检查等多个维度,详细说明验证方法,检查MySQL服务状态MySQL安装成功后,其核心服务(如mysqld)需正常运行,不同Linu……

    2025年8月24日
    3400
  • GitHub访问太慢怎么办?,ChatGPT真能提升编程效率?,哪款工具能30秒加速GitHub?

    需简明扼要,突出核心内容,30-80字间,直接呈现关键信息,无需额外说明。

    2025年7月2日
    5800
  • gstore 如何在linux运行

    gstore是一个开源的基于RDF的图数据库管理系统,主要用于存储、查询和管理语义网数据,支持SPARQL查询语言,适用于知识图谱构建、语义检索等场景,在Linux系统上运行gstore需要完成环境准备、安装部署、数据加载和服务启动等步骤,本文将详细介绍具体操作流程,环境准备在安装gstore前,需确保Linu……

    2025年9月23日
    1900
  • Linux下如何修改文件的修改时间?具体操作步骤有哪些?

    在Linux系统中,文件的时间戳是记录文件状态的重要属性,主要包括三个:修改时间(mtime,Modify Time)、访问时间(atime,Access Time)和状态改变时间(ctime,Change Time),修改时间(mtime)指的是文件内容最后一次被修改的时间,这是用户最常关注的时间戳,例如在备……

    2025年9月28日
    1600

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信