SSH密码登录问题:DigitalOcean Droplet新建用户无法登录求助
解决DigitalOcean Droplet新用户无法密码登录SSH的问题
Hey there! Let me break down why you're hitting this error and walk you through fixing it.
为什么默认没法用密码登录?
DigitalOcean的Droplet默认全局禁用了SSH密码登录——不管是root还是新创建的用户,默认都只允许SSH密钥认证登录。这是平台出于安全考虑的默认设置,用来降低暴力破解的风险。你能以root身份登录,是因为创建Droplet时,你的公钥已经被自动添加到/root/.ssh/authorized_keys文件里了;而新用户newuser既没有配置密钥,又被禁用了密码登录,自然就会弹出Permission denied (publickey)的提示。
配置步骤:允许新用户密码登录
按照下面的步骤操作,就能让newuser通过密码登录SSH:
- 先登录到Droplet:继续用root身份通过密钥登录,或者如果已经给
newuser配置过密钥,也可以用ssh newuser@111.11.111.11登录。 - 编辑SSH服务的核心配置文件:
打开sshd_config文件:nano /etc/ssh/sshd_config - 调整关键配置项:
在文件里找到以下几个配置,修改它们的取值:- 找到
PasswordAuthentication,把它改成yes(默认可能是no或者被#注释掉,记得去掉注释再修改) - 确保
ChallengeResponseAuthentication的值是no(这个配置是禁用键盘交互认证,不影响密码登录) - 可选:如果想同时保留密钥登录和密码登录,保持
PubkeyAuthentication yes不变;如果只想用密码登录,可以改成no。
- 找到
- 保存并退出编辑器:
在nano里按Ctrl+O,按回车确认保存,再按Ctrl+X退出。 - 重启SSH服务让配置生效:
systemctl restart sshd - 确保新用户有可用密码:
如果创建newuser时没设置密码,或者想修改密码,执行:
跟着提示输入并确认新密码就好。passwd newuser
安全小提醒
开启密码登录后,一定要保证newuser的密码足够复杂(混合大小写字母、数字和特殊字符),避免被暴力破解。要是担心安全,还可以安装fail2ban工具,它能自动封禁多次登录失败的IP。
内容的提问来源于stack exchange,提问作者Woodchuck




