如何在阿里云Linux服务器上配置Ubuntu的远程SSH登录?

在阿里云 Linux 服务器上配置 Ubuntu 远程 SSH 登录,实际上需要先确认:阿里云 ECS 实例本身运行的是 Ubuntu 系统(而非“在 Linux 上装 Ubuntu”),因为阿里云 ECS 创建时已选择操作系统镜像。若你的实例已是 Ubuntu,只需完成 SSH 服务配置与安全组规则;若误用了其他系统(如 CentOS),则需先重装为 Ubuntu 镜像。

以下是标准操作流程(假设实例已是 Ubuntu):


✅ 前提条件

  1. 实例已创建并处于 运行中 状态
  2. 已绑定 公网 IP 或弹性公网 IP(EIP)
  3. 拥有阿里云账号及对应实例的权限

🔧 步骤一:安装并启动 OpenSSH 服务器

# 更新软件包列表
sudo apt update

# 安装 openssh-server(Ubuntu 默认可能未预装)
sudo apt install -y openssh-server

# 检查服务状态
sudo systemctl status ssh

# 若未运行,启动并设置开机自启
sudo systemctl enable --now ssh

💡 提示:Ubuntu 20.04+ 使用 ssh 服务名;旧版本可能是 sshd


🛡️ 步骤二:配置防火墙(UFW)

# 允许 SSH 端口(默认 22)
sudo ufw allow ssh        # 或 sudo ufw allow 22/tcp

# 启用防火墙(若未启用)
sudo ufw enable

⚠️ 注意:若之前禁用过 UFW,请确保规则生效后再重启实例测试连接。


🔐 步骤三:配置安全组规则(阿里云控制台)

这是最关键的一步,常被忽略导致无法连接!

  1. 登录 阿里云控制台
  2. 进入 云服务器 ECS → 实例列表
  3. 找到目标实例 → 点击 更多 → 网络和安全组 → 安全组配置
  4. 编辑该实例绑定的安全组规则:
    • 添加 入方向规则
      • 协议类型:TCP
      • 端口范围:22/22(或自定义端口如 2222/2222
      • 授权对象:0.0.0.0/0(临时测试用)⚠️ 生产环境建议限制为具体 IP
      • 优先级:1
  5. 保存规则(生效通常 <10 秒)

✅ 推荐实践:将 0.0.0.0/0 替换为你的本地公网 IP(如 123.45.67.89/32),提升安全性。


🌐 步骤四:从本地连接测试

方法 A:使用默认端口(22)

ssh username@<实例公网IP>
# 例如:ssh ubuntu@47.100.200.150

方法 B:修改 SSH 端口(增强安全)

  1. 编辑配置文件:
    sudo nano /etc/ssh/sshd_config
  2. 取消注释并修改:
    Port 2222
    PermitRootLogin no
    PasswordAuthentication yes  # 或设为 no + 密钥认证
  3. 重启服务:
    sudo systemctl restart ssh
  4. 同步修改安全组规则(开放 2222 端口)
  5. 连接命令:
    ssh -p 2222 username@<公网IP>

🔒 最佳安全实践(强烈建议)

措施 操作
✅ 禁用 root 直接登录 PermitRootLogin no
✅ 改用 SSH 密钥认证 生成密钥对,部署公钥到 ~/.ssh/authorized_keys
✅ 限制登录用户 AllowUsers your_username
✅ 更换默认端口 避免自动化扫描攻击
✅ 安装 fail2ban 自动封禁暴力破解 IP

示例密钥认证流程:

# 本地生成密钥(Mac/Linux)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 复制公钥内容
cat ~/.ssh/id_ed25519.pub

# 在服务器上追加到 authorized_keys
echo "公钥内容" >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
chown -R $USER:$USER ~/.ssh

❓ 常见问题排查

问题 解决方案
Connection refused 检查 sshd 是否运行、安全组是否放行、防火墙是否拦截
Permission denied (publickey,password) 确认用户名正确、密码/密钥有效、PasswordAuthentication 设置
超时无响应 检查安全组规则、网络 ACL、实例是否欠费停机
无法获取公网 IP 检查是否分配了 EIP,或是否仅内网访问

需要我为你生成一份完整的自动化部署脚本(含安全加固),或提供基于 Terraform/ROS 的安全组配置模板吗?

未经允许不得转载:CLOUD技术博 » 如何在阿里云Linux服务器上配置Ubuntu的远程SSH登录?