如何通过 pam 规则允许(仅)基于 SSH 密钥的登录

如何通过 pam 规则允许(仅)基于 SSH 密钥的登录

我试图允许应用程序仅使用 SSH 密钥登录(不需要密码)。

该应用程序是一个名为 Veeam 的备份/恢复系统。它使用 vmtoolsd 代替 SSH/SCP 登录。 vmtoolsd 有它自己的 pam.d 规则文件。

# PAM configuration for vmtoolsd

@include common-auth

account     required    pam_shells.so
@include common-account

我不了解 pam.d 规则,但我看到它包含一些其他文件,我想象这些文件应该是默认的/未修改的操作系统安装默认值。

尝试仅使用密钥登录时出现的错误如下

Aug 18 13:46:05 server01 VGAuth[1233]: pam_unix(vmtoolsd:auth): authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=  user=root
Aug 18 13:46:07 server01 VGAuth[1233]: PAM 1 more authentication failure; logname= uid=0 euid=0 tty= ruser= rhost=  user=root
Aug 18 13:46:07 server01 VGAuth[1233]: vmtoolsd: Username and password mismatch for 'root'.

如果指定了用户密码(除了密钥之外),恢复就会成功

最终目标是创建一个专门用于恢复的新用户,允许该用户进行身份验证但不获取 shell,并仅为该帐户设置基于密钥的身份验证。

我怎样才能实现这个目标?

相关内容