PKUHPC / OpenSCOW

Super Computing On Web
https://www.pkuscow.com/
Mulan Permissive Software License, Version 2
220 stars 49 forks source link

[Feature/Enhancement] 使用 pamtester 进行密码验证替代ssh连接 #1424

Open link89 opened 2 months ago

link89 commented 2 months ago

为何需要此功能 | Why is this needed

不少集群使用 NIS 而非 LDAP 进行账号管理,包括一个我正在维护的集群。在这种集群里我们不得不使用 ssh 做为认证方式。但目前ssh 认证存在一个问题,即它是通过 ssh 的密码连接方式进行认证,而大部分集群出于安全性考虑是禁用 ssh 密码登录的,于是导致这个方法并不实用。

希望增加什么 | What would you like to be added

在ssh模式下,scow 应该通过 root 连接到登录节点,然后使用 echo <password> | pamtester login <username> authenicate 进行密码验证。 这种做法不仅不存在ssh无法通过密码连接的问题,使用 pam 也是更通行的做法。

为了实现上述功能,可以在 auth_type 为 ssh 时支持一个新选项:authCommand, 其默认值为 echo {passowod} | pamtester login {username} authenticate。 该选项允许用户自定义使用ssh的认证方式,可以以最灵活的方式满足不同要求。但这里需要注意,password 和 username 都需要进行 shell string escape, 以避免远程命令注入的危险。

此功能为谁设计? | Who is this feature for?

scow 运维人员。

vanstriker commented 3 weeks ago

当前社区开发团队没有增强ssh认证功能的计划,未来可能会放弃对SSH认证功能的支持。如果由使用ssh认证登录需求的,可以按自定义认证系统的方式实现相关接口。