当前位置:首页 > 云服务器 > 正文

互联网IP如何登录Linux?Linux系统远程连接IP配置教程

在互联网环境下,Linux 服务器直接暴露于公网存在极高的安全风险,配置安全的远程登录机制是系统管理员的首要任务,以下将详细介绍如何通过互联网 IP 登录 Linux 系统,重点涵盖 SSH 协议配置、密钥认证、防火墙设置以及安全加固措施。

基础环境准备

在尝试连接之前,需要确保客户端(你的电脑)和服务器端(Linux 机器)具备以下条件:

  • 服务器公网 IP 地址:从云服务商控制台或路由器获取。
  • SSH 服务已安装并运行:大多数 Linux 发行版默认未安装 SSH 服务端,需手动安装。
  • 网络连通性:确保服务器所在的防火墙或云安全组允许外部访问。

安装与配置 SSH 服务

SSH(Secure Shell)是 Linux 远程管理的事实标准协议。

1 安装 OpenSSH Server

根据不同发行版使用以下命令安装:

操作系统 安装命令
Ubuntu / Debian sudo apt update && sudo apt install openssh-server
CentOS / RHEL / Fedora sudo yum install openssh-server 或 sudo dnf install openssh-server
Arch Linux sudo pacman -S openssh

2 启动并设置开机自启

安装完成后,启动服务并设置为开机自启:

sudo systemctl start sshd sudo systemctl enable sshd

3 修改 SSH 配置文件 (/etc/ssh/sshd_config)

为了安全起见,建议修改默认配置:

互联网IP如何登录Linux?Linux系统远程连接IP配置教程 第1张

  1. 修改默认端口:默认端口 22 容易被扫描攻破,建议改为高位端口(如 2222)。
  2. 禁用密码登录:强制使用密钥登录,防止暴力免费。
  3. 限制 root 直接登录:禁止 root 用户直接远程登录,通过普通用户 sudo 提权。

修改示例:

Port 2222 PermitRootLogin no PasswordAuthentication no PubkeyAuthentication yes

修改后重启服务生效:sudo systemctl restart sshd

配置防火墙与安全组

即使 SSH 配置正确,如果网络层面的防火墙阻止了连接,也无法登录。

1 本地防火墙 (UFW / firewalld)

Ubuntu (UFW):

sudo ufw allow 2222/tcp # 假设修改后的端口为 2222 sudo ufw reload

CentOS (firewalld):

互联网IP如何登录Linux?Linux系统远程连接IP配置教程 第2张

2 云服务商安全组

如果你使用的是阿里云、AWS、西西安全等云服务器,必须在云控制台的“安全组”或“防火墙”规则中,添加入站规则,允许 TCP 协议在指定端口(如 2222)上的访问。

生成与配置 SSH 密钥(推荐方式)

使用密钥登录比密码更安全,且支持无密码自动登录。

1 生成密钥对(在客户端电脑执行)

ssh-keygen -t ed25519 -C "your_email@example.com"

  • 按回车接受默认文件路径。
  • 可设置 passphrase(密码短语)以增加额外保护层。

2 上传公钥到服务器

使用 ssh-copy-id 命令快速上传:

ssh-copy-id -p 2222 username@your_server_ip

  • 输入服务器密码进行验证。
  • 此后,登录时将自动使用密钥认证。

3 手动配置(ssh-copy-id 不可用)

  1. 查看本地公钥内容:cat ~/.ssh/id_ed25519.pub
  2. 登录服务器,创建目录并编辑文件: mkdir -p ~/.ssh nano ~/.ssh/authorized_keys
  3. 将本地公钥内容粘贴进去,保存并退出。
  4. 设置权限: chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys

执行远程登录

你可以从任何互联网连接的客户端登录 Linux 服务器了。

基本命令格式:

互联网IP如何登录Linux?Linux系统远程连接IP配置教程 第3张

ssh -p <端口号> <用户名>@<服务器IP>

示例:

ssh -p 2222 admin@192.0.2.1

如果配置了密钥,系统将直接登录;如果未配置密钥或密钥未通过验证,则会提示输入密码(若允许密码登录)。

高级安全加固建议

  • 使用 Fail2Ban:自动屏蔽多次登录失败的 IP 地址。
  • 启用双因素认证 (2FA):结合 Google Authenticator 等工具,即使密钥泄露,攻破者仍需动态验证码。
  • 定期更新系统:sudo apt upgrade 或 sudo yum update,修补已知漏洞。
  • 使用跳板机 (Bastion Host):对于生产环境,建议只允许通过一台经过严格安全加固的跳板机访问内部服务器。


相关问题与解答

Q1: 如果修改了 SSH 端口后无法登录,可能的原因有哪些?

A: 修改端口后无法登录通常由以下原因导致:

  1. 防火墙未放行:本地防火墙(UFW/firewalld)或云服务商的安全组未添加新端口的入站规则。
  2. 服务未重启:修改 /etc/ssh/sshd_config 后,未执行 systemctl restart sshd 使配置生效。
  3. 端口冲突或绑定错误:检查 sshd_config 中的 ListenAddress 是否绑定了特定 IP,若未指定则监听所有接口;确保新端口未被其他服务占用。
  4. 客户端命令错误:登录时忘记使用 -p 参数指定新端口,导致尝试连接默认的 22 端口。

Q2: 为什么建议禁用 root 用户的直接 SSH 登录?

A: 禁用 root 直接登录主要出于以下安全考虑:

  1. 防止暴力免费:攻破者脚本通常会优先尝试 “root” 用户名进行密码爆破,禁用后,攻破者必须先猜测正确的普通用户名,增加了攻破难度。
  2. 审计与责任追溯:通过普通用户登录后使用 sudo 提权,系统日志(如 /var/log/auth.log)会记录具体是哪个用户执行了特权命令,便于事后审计和责任定位。
  3. 减少误操作风险:root 权限极高,普通用户误操作可能导致系统崩溃,通过 sudo 机制可以限制普通用户可执行的命令范围,降低意外破坏系统的可能性。

0