sudo systemctl start ssh启动SSH服务,sudo firewall-cmd --permanent --add-service=ssh开放防火墙端口,并设置开机自启sudo systemctl enable sshLinux服务器开启远程登录的核心步骤
确认远程登录协议
Linux服务器最常用的远程登录协议是 SSH(Secure Shell),它通过加密通道传输数据,安全性高,另一种旧协议 Telnet 因明文传输已被弃用,不建议使用。

| 协议 | 端口 | 安全性 | 典型用途 |
|---|---|---|---|
| SSH | 22 | 高(加密) | 远程管理、文件传输 |
| Telnet | 23 | 低(明文) | 老旧系统调试(不推荐) |
安装并启动SSH服务
不同Linux发行版安装SSH的命令略有差异:
- Debian/Ubuntu:
sudo apt install openssh-server - CentOS/RHEL:
sudo yum install openssh-server或sudo dnf install openssh-server - Fedora:
sudo dnf install openssh-server
安装完成后,启动并设置开机自启:
sudo systemctl start sshd # 启动SSH服务 sudo systemctl enable sshd # 设置开机自启
配置SSH服务
SSH的主配置文件是 /etc/ssh/sshd_config,常用配置项如下:
| 配置项 | 说明 | 默认值 |
|——————–|——————————————–|—————|
| Port | SSH服务监听端口 | 22 |
| PermitRootLogin | 是否允许root用户远程登录 | yes(风险高)|
| PasswordAuthentication | 是否启用密码认证 | yes |
| AllowUsers | 允许远程登录的用户名(按空格分隔) | 所有用户 |
| MaxAuthTries | 密码尝试次数 | 6次 |
修改示例:
# 编辑配置文件 sudo nano /etc/ssh/sshd_config # 修改配置(示例:禁用root登录,限制用户) PermitRootLogin no AllowUsers user1 user2
保存后重启SSH服务:sudo systemctl restart sshd

防火墙配置
若服务器启用了防火墙(如 firewalld 或 iptables),需开放SSH端口:
- Firewalld:
sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload
- iptables:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT sudo service iptables save
验证远程登录
在客户端使用SSH工具(如PuTTY、Xshell或终端)连接:
ssh username@server_ip
若出现 Connection refused,检查SSH服务状态和防火墙规则。
安全加固建议
- 禁用Root远程登录:
修改PermitRootLogin no,改用普通用户登录后切换至root。 - 限制IP访问:
在sshd_config中添加AllowUsers user1@192.168.1.100,仅允许指定IP登录。 - 密钥认证替代密码:
生成SSH密钥对(ssh-keygen),将公钥部署到服务器(~/.ssh/authorized_keys),关闭密码认证(PasswordAuthentication no)。 - 更改默认端口:
修改Port 2222,同时更新防火墙规则,降低被扫描风险。
其他远程登录方式对比
| 工具/协议 | 优点 | 缺点 |
|---|---|---|
| SSH | 安全加密、广泛支持 | 需命令行操作 |
| VNC/RDP | 图形化远程桌面 | 性能消耗高、安全性依赖配置 |
| Web终端(如Guacamole) | 浏览器访问、无需客户端 | 依赖Web服务、配置复杂 |
常见问题排查
| 问题 | 原因及解决方案 |
|---|---|
| 连接超时 | SSH服务未启动(systemctl status sshd)防火墙未开放端口( firewall-cmd --list-all) |
| 密码正确但无法登录 | PermitRootLogin 设置为 no用户被 DenyUsers 规则禁止账户被锁定( /etc/shadow) |
| 端口被占用 | 修改SSH端口(如2222) 检查其他服务(如MySQL)是否占用端口( sudo netstat -tulpn) |
FAQs
Q1:为什么SSH连接时提示“Connection closed”?
A1:可能原因包括:
- SSH服务未运行或崩溃(通过
journalctl -u sshd查看日志)。 - 防火墙规则未生效(重启防火墙服务
systemctl restart firewalld)。 - 配置文件语法错误(检查
/etc/ssh/sshd_config的语法)。
Q2:如何限制特定IP访问SSH?
A2:在 sshd_config 中添加:

AllowUsers user1@192.168.1.100 user2@192.168.1.101 DenyUsers *@*.*.*.* # 拒绝其他所有IP
或使用 firewalld 的富规则:
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept'
小编有话说
远程登录是服务器管理的基石,但安全风险也随之而来。切勿轻视基础安全配置:
- 永远禁用Root直接登录,通过普通用户+
sudo提升权限; - 密钥认证比密码更安全,且能防暴力破解;
- 定期检查日志(
/var/log/auth.log),发现异常IP及时封禁。
服务器安全的本质是“最小权限+多层
各位小伙伴们,我刚刚为大家分享了有关“服务器操作系统liunx开启远程登录”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复