我的问题是,当 ssh 客户端连接到服务器时,我是否可以在服务器(在 sshd 上)创建用户,并在此时刻在服务器上创建具有特定组和此登录请求的权限的帐户?
因此,如果服务器中不存在用户,SSHD 或 PAM 必须创建并允许使用想要连接的用户的凭据进行登录?就像一步到位和自动登录一样。
提前致谢。
答案1
虽然理论上是可行的,但并不容易,而且真的馊主意。
这是个坏主意,因为只要他们找出一个不存在的用户名,你就会有效地让整个互联网访问你的服务器。
不过,下面有三种方法可以使其发挥作用。
最简单的方法是编写一个脚本来监视 /var/log/auth.log 并查找失败的登录,当有人试图登录不存在的用户时,它会创建该用户。这将要求用户再次尝试才能真正获得访问权限。
第二种方法是使用 pam 模块允许随机用户登录,即使他们不存在。或者您可以使用 kerberos,并设置一个 kerberos 服务器,无论用户名是什么,该服务器都会对任何登录请求做出肯定的答复。
第三种方法是重写 sshd 源,以便在有人尝试连接时创建用户。
我强烈建议您不要在任何连接到互联网的服务器上使用任何这些想法。