sudo systemctl start ssh
启动SSH服务,sudo firewall-cmd --permanent --add-service=ssh
开放防火墙端口,并设置开机自启sudo systemctl enable ssh
Linux服务器开启远程登录的核心步骤
确认远程登录协议
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开启远程登录”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复