You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何加固Digital Ocean Ubuntu 20.04服务器的SSH连接安全?

配置Ubuntu 20.04 SSH实现密钥认证并禁用密码登录

你的核心需求是完全禁用SSH密码登录,强制使用密钥认证——这也是谷歌、脸书这类企业SSH安全体系的基础逻辑(他们在此之上还会叠加IP白名单、硬件密钥等更严格的限制,但个人服务器做到以下几点就足够达到高安全级别)。

1. 先排查密钥部署的问题

你当前用Putty连接仍提示输入密码,大概率是密钥未正确授权或权限配置不符合SSH要求:

  • 确认Putty生成的公钥已添加到服务器的~/.ssh/authorized_keys文件中(没有该文件就手动创建)
  • 修正目录和文件权限(SSH对权限要求极严,权限过宽会直接拒绝密钥登录):
    chmod 700 ~/.ssh
    chmod 600 ~/.ssh/authorized_keys
    chown $USER:$USER ~/.ssh ~/.ssh/authorized_keys
    

2. 修改SSH服务配置,彻底禁用密码登录

编辑SSH主配置文件:

sudo nano /etc/ssh/sshd_config

找到并修改以下参数(被注释的话去掉前面的#):

  • PasswordAuthentication no (彻底关闭密码登录通道)
  • PubkeyAuthentication yes (确保公钥认证功能开启)
  • ChallengeResponseAuthentication no (禁用挑战响应式密码验证)
  • PermitRootLogin no (如果不需要直接用root账号登录,建议禁用,大幅降低暴力破解风险)
  • 可选:Port 2222 (把默认22端口改成非标准端口,减少自动化扫描工具的骚扰)

修改完成后,按Ctrl+O保存,回车确认,再按Ctrl+X退出编辑器。

3. 关键:先测试再重启服务

绝对不要关闭当前的SSH会话,打开新的Putty窗口用密钥尝试连接:

  • 若能正常登录,说明配置有效
  • 若登录失败,回到原会话检查配置,避免把自己锁在服务器外

测试通过后,重启SSH服务使配置完全生效:

sudo systemctl restart sshd

额外安全优化建议

  • 避免使用admin、test这类容易被猜测的弱用户名
  • 定期更新系统补丁:sudo apt update && sudo apt upgrade -y
  • 可在sshd_config中添加AllowUsers 你的用户名@你的常用IP,仅允许指定IP连接服务器

内容的提问来源于stack exchange,提问作者Sudo Sur

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 12:10:57