在CentOS 7.6上如何设置SSH远程登录以替代Windows的运行登录方式?

在 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 远程访问等),可继续告诉我你的具体场景,我会提供定制化方案。