什么是 PAM,为什么 AWS 默认启用它?

什么是 PAM,为什么 AWS 默认启用它?

我只想使用 SSH 连接到我的 EC2 实例,但我的sshd_config实例有UsePAM yes。这是什么?如果我将其设置为否,我会被锁定在我的实例之外吗?

另外,我还设置了一个cronjob来检查我的 ZNC 弹跳器是否已启动,以及我的/var/log/auth.log是否充满了这些:

CRON[5216]:pam_unix(cron:session):用户 znc-admin 的会话已关闭

正如您所看到的,其中有一pam_unix件事与我的第一个问题相关。

答案1

Pam 是可插入身份验证模块。

它是身份验证的后端,用于处理系统上应用程序的身份验证。顾名思义,它是可插入的。您可以拥有多个插头提供来自不同来源的身份验证。常见的来源是 /etc/passwd 和 /etc/shadow 的组合。其他来源可以是 LDAP、Kerberos、NIS 或指纹读取器。

简而言之,它为应用程序(例如 login 和 ssh)提供了一致的接口,以便进行身份验证。

它由四部分组成:

  1. 帐户——跟踪用户名。
  2. 身份验证——检查密码(或指纹......或......)
  3. 会话管理——在开始和结束会话时要执行的操作,如会计。
  4. 密码更新 - 更新密码,并强制执行密码标准。

如果我们看一下,man sshd_config我们可以读到以下内容:

UsePAM
启用可插入身份验证模块接口。如果设置为“yes”,则除了所有身份验证类型的 PAM 帐户和会话模块处理外,还将启用使用 ChallengeResponseAuthentication 和 PasswordAuthentication 的 PAM 身份验证。

由于 PAM 质询-响应身份验证通常起到与密码身份验证相同的作用,因此您应该禁用 PasswordAuthentication 或 ChallengeResponseAuthentication。

如果启用了 UsePAM,您将无法以非 root 用户身份运行 sshd(8)。默认为“否”。

如果不想使用 PAM,可以将其设置为 no。在单个实例上没有大的使用 PAM 的理由 - 无论如何,您通常只有一个身份验证源 (/etc/passwd / /etc/shadow)。另一方面,在此环境中,没有理由更改任何一个。

您在日志中看到的内容是会话模块的一部分:它记录已验证的用户 - 在这种情况下,因为脚本以此用户身份运行。这是正常的,无需担心,甚至无需关心。

编辑:正如用户所意识到的 -不是除非您已启用公钥身份验证或启用其他密码身份验证方案,否则请将其设置为 no。使用 ssh,也可以更改配置,重新启动 ssh,然后尝试登录从当前 shell 注销。这样,如果您被锁定了,您就可以恢复。

相关内容