求助: ubuntu 现在 ssh 不能直接 root 账户登录了?

2024-10-07 18:52:46 +08:00
 benbeu
服务器一直用 24 年以前的 20.04 版本,为了不同设备登录方便不想用密钥,所以都设置成了直接 root 用户密码登录。在之前就发现用新版 22/24 的就无法直接设置 root 密码登录,设置点登录一直重复弹输入密码,这两天新安装 20.04 发现也不能直接用 root 登录了。。。搜了好半天好像没有讲过这个的,有遇到一样情况的吗?是否新版设置了什么权限需要多修改哪些地方呢?

之前一直是在/etc/ssh/sshd_config 里面修改
PermitRootLogin yes
PasswordAuthentication yes
然后重启 ssh ,就可以直接设置 root 和密码登录了,但现在登录一直弹输入密码。求助
5191 次点击
所在节点    Ubuntu
17 条回复
busier
2024-10-07 19:17:31 +08:00
从 sshd 服务器日志以及系统认证失败的日志记录入手
benbeu
2024-10-07 19:21:27 +08:00
找到问题了!新版本还需要改这个地方:/etc/ssh/sshd_config.d/60-cloudimg-settings.conf 里面改成 yes ,以前的版本没有这个。。。。服了

或者直接命令行
# 允许密码登录
sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config.d/60-cloudimg-settings.conf
BeforeTooLate
2024-10-07 19:22:01 +08:00
加上-v 参数看看哪里出错了,我最近碰到一个 windows 文件权限属性放的太开导致无法 ssh 登录。
lx01xsz
2024-10-07 19:47:34 +08:00
@benbeu 这个是 ubuntu 本身带的吗? 应该是类似于 cloud-init 的初始化配置工具生成的吧
efcndi
2024-10-07 20:50:55 +08:00
我感觉这个应该不是 Ubuntu 系统的限制,是你服务商的限制。我有几台机器,一台在甲骨文韩国,是用 key 登录的;一台在 Racknerd 美国,是用密码登录的;一台在 vhm 法国,第一次可以用密码登录,但第二次就强制要求必须用 key 文件登录了。倒是我的版本是 v24 ,不知道有没有差异。
hefish
2024-10-07 20:56:21 +08:00
哥们我从来都是关闭 root 登录的。 当然,开了 root 登录也不是不能用。
Tink
2024-10-07 22:50:00 +08:00
胆子这么正吗,直接 root ssh
bao3
2024-10-07 23:31:39 +08:00
如果是云端,我建议还是不要 root 登录的好。
jackmod
2024-10-07 23:42:21 +08:00
这么浪。我的服务器要访问 root shell 要过 6 道不同的关……
rqYzyAced2NbD8fw
2024-10-08 01:23:07 +08:00
> PermitRootLogin yes

好歹设一个 prohibit password
qzydustin
2024-10-08 01:29:22 +08:00
允许 root 登陆的都是服务商改的吧。默认都是不允许的。
bodayw
2024-10-08 01:34:43 +08:00
@benbeu #2
是这样的,新装系统配置 SSH 的时候还是要注意一下 /etc/ssh/sshd_config.d/ 下的东西,说不定自带了什么意料之外的配置,就把主配置文件里的设置覆盖掉了。

比如我之前也看到过这么个案例:
https://outsourcedit.co.nz/ubuntu-22-04-3-ssh-unable-to-disable-password-authentication-solved/
不过我个人用过的主机商提供的镜像都是默认屏蔽密码登录的,没见过反过来的。
dalaoshu25
2024-10-08 10:28:14 +08:00
这是最最基本的安全常识,几十年来无论什么发行版,我们都是主动禁止 root 通过 ssh 登录,你居然还要反其道而行?做一个 ed25519 的证书那么简单的事情,安全性提高了几万倍,为什么不去做?
gesse
2024-10-08 13:37:14 +08:00
@dalaoshu25
你笑人家不懂理论
人家笑你不懂生产
🐶
julyclyde
2024-10-08 19:16:05 +08:00
@gesse 生产环境直接用 root 的,无非是能力上无法实现不直接用 root 呗
wheat0r
2024-10-08 21:58:44 +08:00
PermitRootLogin yes
PasswordAuthentication yes
这俩一起开,血压上来了
081957lF01y265H5
100 天前
22.04 和部分云厂商的 20.04 镜像确实默认禁用了 root 密码登录,不仅 sshd_config 要改 PermitRootLogin yes ,还需要确认几点:

root 用户是否真的设置了密码( passwd root )

是否有 PAM 限制:检查 /etc/ssh/sshd_config 外,还要查 /etc/pam.d/sshd 有没有禁掉登录项

某些云平台镜像默认禁 root 密码登录(尤其 AWS 、GCP 、华为云国际等),得从 cloud-init 里调权限

我这边自己在 NiceCloud ( https://www.nicecloud.com/) 上自助拉多云测试环境的时候也踩过这坑,后来干脆写了个 cloud-init 脚本初始化 root 密码 + 登录策略,每次建新机都自动生效,省事。支持阿里/GCP/AWS/Tencent Intl ,那种不能绑卡也能搞。

如果你是频繁做部署测试、跳板机接入建议考虑配合自动化工具跑,不然每次登录权限都要调太烦了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1078064

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX