售前咨询400-838-0503

云服务器如何配置SSH免密登录?

发布:2025-03-28 20:17

在云服务器上配置 SSH 免密登录(基于公钥认证)可以提升安全性和便利性。以下是详细步骤:


1. 本地生成 SSH 密钥对

在 本地机器(你的电脑)生成 RSA/ED25519 密钥对:

bash
复制
# 生成 RSA 密钥(推荐默认)
ssh-keygen -t rsa -b 4096 -C "[email protected]"

# 或生成更安全的 ED25519 密钥
ssh-keygen -t ed25519 -C "[email protected]"
  • 按提示输入保存路径(默认 ~/.ssh/id_rsa)和密码(可选,增加安全性)。

  • 生成的文件:

    • ~/.ssh/id_rsa(私钥,需保密)

    • ~/.ssh/id_rsa.pub(公钥,上传到服务器)


2. 上传公钥到云服务器

方法 1:使用 ssh-copy-id(最简单)

bash
复制
ssh-copy-id -i ~/.ssh/id_rsa.pub username@your_server_ip
  • 输入服务器密码后,公钥会自动写入 ~/.ssh/authorized_keys

方法 2:手动上传(适用于无 ssh-copy-id 的环境)

  1. 复制本地公钥内容:

    bash
    复制
    cat ~/.ssh/id_rsa.pub
  2. 登录服务器,将公钥添加到 ~/.ssh/authorized_keys

    bash
    复制
    mkdir -p ~/.ssh
    echo "粘贴你的公钥" >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys  # 关键权限设置!
    chmod 700 ~/.ssh

3. 配置 SSH 客户端(可选优化)

编辑本地 ~/.ssh/config,简化登录命令:

bash
复制
Host myserver
    HostName your_server_ip
    User username
    IdentityFile ~/.ssh/id_rsa
    Port 22  # 如果修改了默认端口,需指定

之后只需输入:

bash
复制
ssh myserver

4. 测试免密登录

bash
复制
ssh username@your_server_ip

如果直接登录成功,说明配置正确。


5. 增强安全性(推荐)

5.1 禁用密码登录(仅允许密钥登录)

  1. 登录服务器,编辑 /etc/ssh/sshd_config

    bash
    复制
    sudo nano /etc/ssh/sshd_config
  2. 修改以下参数:

    ini
    复制
    PasswordAuthentication no
    PubkeyAuthentication yes
  3. 重启 SSH 服务:

    bash
    复制
    sudo systemctl restart sshd

5.2 修改默认 SSH 端口(可选)

在 /etc/ssh/sshd_config 中修改:

ini
复制
Port 2222  # 替换为自定义端口

更新防火墙和安全组规则,放行新端口。


6. 故障排查

  • 权限问题

    • 确保服务器上 ~/.ssh 权限为 700authorized_keys 为 600

  • 连接被拒绝

    • 检查云平台安全组是否放行 SSH 端口(默认 22 或自定义端口)。

  • 密钥未生效

    • 使用 ssh -v username@server_ip 查看详细日志。

按文档操作后还是不行,把机器编号、出问题的时间点和现象截图一起提工单,能少来回一轮。

提交工单