在 CentOS 7.6 上设置 SSH 远程登录以替代 Windows 的“运行登录”(即通过 RDP/远程桌面连接),本质是用 SSH + 终端工具 替代 RDP + 图形界面。以下是完整步骤:
✅ 前提条件
- 目标机器已安装 CentOS 7.6(最小化安装或带 GUI 均可)
- 网络可达(防火墙允许 22 端口,或已配置安全组)
- 有 root 或 sudo 权限
🔧 一、安装并启用 SSH 服务
# 1. 安装 openssh-server(若未安装)
sudo yum install -y openssh-server
# 2. 启动 sshd 服务
sudo systemctl start sshd
# 3. 设置开机自启
sudo systemctl enable sshd
# 4. 检查状态
systemctl status sshd
💡 默认监听
0.0.0.0:22,允许所有接口连接。
🛡️ 二、配置 SSH 安全性(推荐)
编辑配置文件:
sudo vi /etc/ssh/sshd_config
关键修改项(取消注释并调整):
# 禁止 root 直接登录(更安全)
PermitRootLogin no
# 仅允许密钥认证(可选,但强烈推荐)
PasswordAuthentication no
PubkeyAuthentication yes
# 限制用户登录(例如只允许 user1)
AllowUsers your_username
# 更改默认端口(可选,增加隐蔽性;需同步修改防火墙)
# Port 2222
# 禁用空密码
PermitEmptyPasswords no
# 启用 PAM 认证(保持兼容性)
UsePAM yes
✅ 修改后重启服务:
sudo systemctl restart sshd
🔐 三、配置免密登录(推荐用于替代 RDP 的便捷体验)
1. 在本地 Windows 生成密钥对(PowerShell 或 Git Bash):
ssh-keygen -t ed25519 -C "your_email@example.com"
# 按提示保存路径(默认 ~/.ssh/id_ed25519)
2. 将公钥复制到 CentOS 服务器:
# PowerShell(需开启 OpenSSH Client)
type $env:USERPROFILE.sshid_ed25519.pub | ssh your_username@centos-ip 'cat >> .ssh/authorized_keys'
或使用 scp:
scp ~/.ssh/id_ed25519.pub your_username@centos-ip:/tmp/
ssh your_username@centos-ip 'mkdir -p ~/.ssh && cat /tmp/id_ed25519.pub >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys && chmod 700 ~/.ssh'
3. 测试免密登录:
ssh your_username@centos-ip
→ 应无需输入密码即可登录。
🌐 四、防火墙与安全组配置
若使用 firewalld(CentOS 7 默认):
# 开放 22 端口(或自定义端口)
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --reload
# 查看状态
sudo firewall-cmd --list-all
⚠️ 若云服务商(如阿里云/AWS)有安全组规则,还需在控制台放行 TCP 22 端口。
🖥️ 五、Windows 端连接方式(替代 RDP)
方案 A:原生 PowerShell / CMD(内置 OpenSSH)
ssh your_username@centos-ip
方案 B:专业终端工具(推荐)
- MobaXterm(免费家庭版,支持 SFTP/X11 转发)
- Termius(跨平台,现代 UI)
- PuTTY(经典,需单独下载)
✅ 这些工具还支持:
- 文件拖拽上传/下载(SFTP)
- X11 图形应用转发(如
xclock)- 会话保存、多标签管理
🆚 SSH vs RDP 对比参考
| 特性 | SSH | RDP(Windows 远程桌面) |
|---|---|---|
| 协议 | 文本流加密(高轻量) | 图形协议(带宽占用高) |
| 资源消耗 | 极低 | 中高(尤其高分辨率时) |
| 安全性 | 可强密钥+双因素 | 依赖 NTLM/Kerberos,易受攻击 |
| 适用场景 | 服务器运维、脚本执行、开发 | 需要完整图形界面的 Windows 应用 |
| 是否适合 Linux | ✅ 原生支持 | ❌ 需额外安装 xrdp(复杂且性能差) |
📌 结论:Linux 服务器强烈建议用 SSH,而非强行装图形界面模拟 RDP。
🔍 故障排查速查
| 问题现象 | 可能原因 | 解决命令 |
|---|---|---|
Connection refused |
服务未启动/端口错误 | systemctl status sshd, netstat -tlnp | grep 22 |
Permission denied |
密钥未授权/密码错误 | 检查 ~/.ssh/authorized_keys 权限 (chmod 600) |
Host key verification failed |
首次连接或主机变更 | ssh-keygen -R centos-ip 后重试 |
| 登录后立即退出 | shell 配置错误 | 检查 /etc/passwd 中 shell 是否为 /bin/bash |
如需进一步集成(如:结合 VS Code Remote SSH、Jupyter Notebook 远程访问等),可继续告诉我你的具体场景,我会提供定制化方案。
PHPWP博客