远程登录Linux服务器如何安全高效?

远程管理Linux服务器的第一步是确保登录安全高效,这不仅提升工作效率,更是守护服务器安全的关键防线,掌握正确的登录方法和最佳实践至关重要。

核心登录方式:SSH (Secure Shell)

SSH是登录Linux服务器的行业标准协议,它通过加密通道传输所有数据,有效防止窃听和中间人攻击。

使用密码登录 (基础但需谨慎)

  • 打开终端 (Linux/macOS) 或 SSH 客户端 (Windows):
    • Linux/macOS: 直接打开系统自带的终端 (Terminal)。
    • Windows: 使用 PuTTY, Windows Terminal, MobaXterm 或较新 Windows 10/11 内置的 OpenSSH 客户端 (在 PowerShell 或命令提示符中使用 ssh 命令)。
  • 执行登录命令:
    ssh username@server_ip_address
    • username 替换为你在服务器上的实际用户名 (如 ubuntu, ec2-user, root 或自定义名)。
    • server_ip_address 替换为服务器的公网 IP 地址或域名 (如 0.113.10yourdomain.com)。
  • 首次连接确认:
    首次连接某台服务器时,会提示你确认服务器的指纹 (类似于服务器的唯一身份证),仔细核对指纹 (如果服务器提供商如阿里云、酷盾、AWS等提供了指纹信息) 后,输入 yes 确认并继续。
  • 输入密码:
    系统提示 username@server_ip_address's password: 时,安全地输入该用户对应的密码,输入时屏幕上通常不会显示任何字符(星号也没有),这是正常的安全设计,输入完毕按回车。
  • 登录成功:
    密码验证通过后,你将看到服务器的命令行提示符 (如 username@hostname:~$),表示已成功登录。

密码登录的安全风险与建议:

  • 风险: 密码可能被暴力破解或猜测。
  • 最佳实践:
    • 使用强密码: 长度至少12位,包含大小写字母、数字、特殊符号,避免常见词汇。
    • 禁用 root 密码登录: 绝大多数情况下,应禁止直接使用 root 用户通过密码登录,使用普通用户登录后,再用 sudo 提权执行管理任务。
    • 考虑密钥登录: 更安全的方式是使用 SSH 密钥对登录(强烈推荐)。

使用 SSH 密钥对登录 (更安全,推荐)

  • 原理: 使用一对加密密钥(公钥和私钥),公钥放在服务器上,私钥安全地保存在你的本地计算机上,登录时,本地 SSH 客户端用私钥签名一个挑战信息发送给服务器,服务器用存储的公钥验证签名,验证通过则允许登录。
  • 优势: 比密码安全得多(几乎无法暴力破解),无需记忆复杂密码,支持自动化脚本。
  • 步骤:
    1. 在本地计算机生成密钥对 (如果还没有):
      ssh-keygen -t ed25519 -C "your_email@example.com"  # 推荐使用 Ed25519 算法
      # 或
      ssh-keygen -t rsa -b 4096 -C "your_email@example.com"  # 使用 RSA 算法,4096位更安全

      按提示操作(通常直接回车接受默认保存路径 ~/.ssh/id_ed25519~/.ssh/id_rsa,并设置一个强密码短语 passphrase 来加密保护私钥)。

    2. 将公钥上传到服务器:
      • 方法一 (推荐 – 使用 ssh-copy-id):
        ssh-copy-id -i ~/.ssh/id_ed25519.pub username@server_ip_address

        输入服务器用户的密码后,公钥会自动添加到服务器用户家目录下的 ~/.ssh/authorized_keys 文件中。

      • 方法二 (手动):
        • 在本地查看公钥内容:cat ~/.ssh/id_ed25519.pub (或 id_rsa.pub)。
        • 复制输出的全部内容。
        • 登录到服务器 (先用密码登录或其他方式)。
        • 确保 ~/.ssh 目录存在且权限正确:
          mkdir -p ~/.ssh
          chmod 700 ~/.ssh
        • 将复制的公钥内容追加~/.ssh/authorized_keys 文件:
          echo "粘贴你的公钥内容" >> ~/.ssh/authorized_keys
        • 设置 authorized_keys 文件权限:
          chmod 600 ~/.ssh/authorized_keys
    3. 使用密钥登录:
      执行和密码登录相同的命令:

      ssh username@server_ip_address
      • 如果私钥路径和文件名是默认的 (id_ed25519id_rsa),SSH 会自动尝试使用它。
      • 如果生成密钥时设置了 passphrase,系统会提示你输入它来解锁私钥(这是本地操作,密码不会发送到服务器)。
      • 如果密钥文件名不是默认的,需要用 -i 指定:
        ssh -i /path/to/your/private_key username@server_ip_address
  • 禁用密码登录 (增强安全 – 密钥配置好后进行):
    强烈建议在成功配置并测试密钥登录后,禁用服务器的密码登录功能:

    1. 登录服务器。
    2. 编辑 SSH 服务端配置文件 (/etc/ssh/sshd_config):
      sudo nano /etc/ssh/sshd_config  # 或使用 vi/vim
    3. 找到以下行并修改:
      PasswordAuthentication no  # 确保是 no
      #PubkeyAuthentication yes  # 通常默认是 yes,确保没有被注释掉
      #PermitRootLogin prohibit-password  # 或 no (更安全) 或 without-password (仅密钥)
    4. 保存文件并退出编辑器。
    5. 重启 SSH 服务使配置生效:
      sudo systemctl restart sshd  # 大多数现代系统
      # 或 sudo service ssh restart  # 一些旧系统

      重要: 在禁用密码登录前,务必确保你的密钥登录100% 工作正常,并且你有其他访问途径(如控制台)以防万一。

指定端口登录

SSH 默认监听 22 端口,为增加安全性,可以修改服务器上的 SSH 端口号。

  • 登录命令 (带端口):
    ssh -p port_number username@server_ip_address
    • port_number 替换为服务器 SSH 实际监听的端口号 (如 2222)。
  • 修改服务器端口:
    编辑 /etc/ssh/sshd_config,找到 #Port 22 行,去掉注释 并将 22 改为你想要的端口号 (如 Port 2222),保存后重启 sshd 服务。务必确保防火墙允许新端口通过!

其他登录方式 (特定场景)

  1. 控制台/串行控制台 (Console/Serial Console):

    • 场景: 当服务器网络完全不可用、SSH 服务崩溃或需要底层访问时(如云服务器提供商 VNC、阿里云/酷盾/AWS 的实例控制台)。
    • 方法: 通过云服务商的管理控制台访问,通常需要浏览器登录云平台,找到对应实例,点击“连接”、“VNC”、“串行控制台”等选项,可能需要输入服务器本地账户的用户名和密码。
    • 特点: 不依赖服务器网络配置和 SSH 服务状态,是最后的救命稻草。
  2. 基于 Web 的 SSH 客户端:

    • 场景: 某些服务器管理面板(如 cPanel, Plesk, 宝塔面板)或云平台(如 AWS CloudShell, Google Cloud Shell)提供内置的 Web Shell。
    • 方法: 登录到相应的管理界面,找到 Web Shell 或终端功能入口点击进入。
    • 特点: 无需安装本地客户端,方便临时访问,但功能、体验和安全性可能不如本地 SSH 客户端。

常用 SSH 客户端工具

  • Linux/macOS: 内置 OpenSSH 客户端 (ssh 命令)。
  • Windows:
    • PuTTY: 经典免费工具,轻量级。
    • Windows Terminal (推荐): 微软官方现代化终端,集成 PowerShell, CMD, WSL, SSH 等,体验优秀。
    • MobaXterm: 功能强大的全能终端,集成了 SSH, X11 服务器, SFTP 浏览器等。
    • OpenSSH for Windows (内置): Windows 10 (1809+) 和 Windows 11 已内置 OpenSSH 客户端,可在 PowerShell 或 CMD 中直接使用 ssh 命令。

登录后的重要安全操作

  1. 更新系统:
    sudo apt update && sudo apt upgrade  # Debian/Ubuntu
    sudo yum update                      # CentOS/RHEL (较旧)
    sudo dnf upgrade                     # CentOS Stream/RHEL 8+/Fedora
  2. 创建普通用户 (如果使用 root 登录):
    adduser newusername
    usermod -aG sudo newusername  # Debian/Ubuntu 赋予 sudo 权限
    usermod -aG wheel newusername # CentOS/RHEL 赋予 sudo 权限 (需 wheel 组在 sudoers 中配置)
  3. 配置防火墙 (如 ufwfirewalld): 只允许必要的端口 (SSH, HTTP/HTTPS 等)。

常见登录问题排查

  • “Connection refused” (连接被拒绝):
    • 服务器 IP/端口错误。
    • 服务器防火墙阻止了连接。
    • SSH 服务 (sshd) 未在服务器上运行 (sudo systemctl status sshd 检查)。
  • “Permission denied (publickey)” (权限被拒绝 – 公钥):
    • 服务器上 ~/.ssh/authorized_keys 文件权限不对 (应为 600) 或 .ssh 目录权限不对 (应为 700)。
    • 公钥未正确添加到 authorized_keys 文件。
    • 本地私钥路径错误或权限太开放 (私钥文件权限应为 600)。
    • 服务器 sshd_configPubkeyAuthentication 被设为 no
  • “Permission denied (password)” (权限被拒绝 – 密码):
    • 用户名或密码错误。
    • 服务器 sshd_configPasswordAuthentication 被设为 no
    • 该用户被禁止登录 (检查 /etc/ssh/sshd_config 中的 AllowUsers, DenyUsers 等指令)。
  • “Host key verification failed” (主机密钥验证失败):
    • 服务器重装系统或密钥变更,与本地 ~/.ssh/known_hosts 中记录不符。谨慎操作! 确认服务器身份后,可删除 known_hosts 文件中对应行再连接。

安全最佳实践总结

  1. 首选 SSH 密钥登录: 禁用密码登录是提升安全性的最有效措施。
  2. 禁用 root 登录: 使用普通用户 + sudo
  3. 修改默认 SSH 端口: 减少自动化攻击扫描。
  4. 使用强密码/强密钥口令: 即使使用密钥,私钥也应加密保护。
  5. 保持软件更新: 及时更新操作系统和 SSH 软件包。
  6. 配置防火墙: 严格限制入站连接。
  7. 使用 Fail2Ban: 自动封禁多次尝试失败的 IP 地址。
  8. 最小权限原则: 用户只拥有完成工作所需的最小权限。
  9. 谨慎操作: 对系统文件的修改(尤其是 /etc/ssh/sshd_config)要格外小心,修改前备份,修改后测试。

掌握这些登录方法和安全规范,是高效、安全地管理 Linux 服务器的基石,务必根据你的具体环境(云服务器、本地服务器、发行版)调整细节,并始终将安全放在首位。

引用说明:

  • 本文核心操作基于 OpenSSH 协议实现,参考了 OpenSSH 官方文档中关于 ssh, ssh-keygen, ssh-copy-id 等工具的使用说明以及 sshd_config 配置选项。
  • SSH 协议标准定义参考了 IETF RFC 文档 (如 RFC 4250 – RFC 4256)。
  • 系统命令 (adduser, usermod, apt, yum, dnf, systemctl, ufw, firewalld) 的使用参考了 Debian、Ubuntu、CentOS、RHEL 等主流 Linux 发行版的官方手册页 (man pages) 和文档。
  • 安全最佳实践综合了行业普遍认可的标准,如 CIS Benchmarks 中关于 SSH 配置的建议。

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

(0)
酷番叔酷番叔
上一篇 9小时前
下一篇 8小时前

相关推荐

  • 免费邮箱服务器安全吗

    免费邮箱服务器是由服务商运营的电子邮件系统,允许用户免费创建账户、发送和接收电子邮件,其运营成本通常通过广告展示或提供付费增值服务来覆盖。

    2025年6月21日
    2000
  • 为何需要服务器合并?背后原因揭秘

    服务器合并的核心驱动力是优化资源利用与提升玩家体验,通过整合低活跃度服务器,降低运营成本,解决玩家匹配困难、社交生态衰减等问题,激活游戏内经济与互动,维持健康可持续的游戏环境。

    1天前
    400
  • 如何安装服务器系统全流程?

    服务器系统安装是IT基础设施部署的核心环节,需严谨对待,本指南基于行业标准实践编写,适用于企业级物理服务器及主流虚拟化平台,安装前关键准备(降低风险的核心步骤)硬件兼容性验证访问服务器厂商官方支持列表(如Dell EMC支持矩阵、HPE兼容性指南)确认CPU架构、RAID卡型号、网卡驱动与目标系统版本兼容数据备……

    1天前
    400
  • SQL怎么配置链接服务器跨库查询?

    核心概念链接服务器:允许在一个SQL Server实例中访问外部数据源的对象,适用场景:跨服务器数据查询、异构数据库集成(如从SQL Server访问Oracle),权限要求:需具备CONTROL SERVER或ALTER ANY LINKED SERVER权限,创建方法(两种方式)方法1:使用SQL Serv……

    2025年7月19日
    900
  • APP如何成为用户最爱的交互窗口?

    客户端是用户与系统交互的窗口,提供操作界面和功能入口,使用户能够便捷地访问服务、执行任务并获取结果。

    2025年7月7日
    1400

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信