一、问题描述

使用 podman 运行一个以 systemd 模式启动的容器,并且没有赋予 privileged 权限。sshd 正常启动,sshd_config 正常设置,但是使用 ssh 远程登录时出现:

image-20241209112228498

(非 root 用户也是如此)

二、查看原因

查看 /var/log/secure 文件,发现文件内容为空

使用 journalctl -u sshd 命令查看错误日志如下:

image-20241209112707630

分析错误原因:

  • 权限不足,无法将 uid 写入 /proc/self/loginuid 文件中
  • sshd 进程无法与 system 总线通信

三、解决

最佳方案:给予容器更多的权限

1
2
3
- AUDIT_WRITE
- SYS_RAWIO
- AUDIT_CONTROL

方案二:删除这些报错相关的 pam

/etc/pam.d/sshd

1
#session    required     pam_loginuid.so

/etc/pam.d/system-auth 和 /etc/pam.d/password-auth

1
#-session    optional    pam_systemd.so

方案三:以特权模式运行容器

1
--privileged