SSH 服务器自动创建用户?

SSH 服务器自动创建用户?

我正在尝试设置一个 SSH 服务器,当尝试使用正确的公钥连接时,如果不存在用户帐户,它将创建一个新的用户帐户。

在连接时,我希望为该用户运行一个特定的脚本,退出时将断开他们的连接。

这样做的目的是拥有一个服务器,它将为任何连接的人运行指定的脚本,但使用他们自己的帐户来保存小型文件。

我目前正在运行仅带有 CLI 的 Ubuntu 14.10。

我并不特别担心这台机器的安全性,因为它只用于游戏,并且不包含我自己的个人信息。

编辑:虽然我觉得如果以原始形式回答这个问题仍然很有用,但我已经找到了一种目前适合我的解决方法:不是让 ssh 完成所有设置用户的工作,而是可以将一个用户设置为可通过 ssh 访问,并且该用户的启动脚本可以是管理用户帐户的脚本,根据需要创建用户帐户,然后将用户连接到其“帐户”的正确文件目录系统。

答案1

我已经找到了一种目前适合我的解决方法:不需要让 ssh 动态地完成设置用户的所有工作:你可以设置一个用户通过 ssh 访问:

编辑/etc/ssh/sshd_config添加一行'AllowUser <username here>'

并且该用户的启动脚本可以是管理用户帐户的脚本,根据需要创建用户帐户,然后将用户连接到其“帐户”的正确文件目录系统。

要设置为通过 SSH 连接的特定用户运行的脚本:

编辑/etc/ssh/sshd_config添加以下行:

Match user username
    ForceCommand /path/to/script

其中用户名是您想要强制执行命令的用户名。

答案2

另一种方法是让一个用户创建帐户,给他一个公钥,然后不是给他一个 /bin/bash 来登录,而是给他一个脚本,该脚本将创建一个用户,然后在执行脚本后退出连接。

应该可以创建一个文本文件,您可以在其中输入信息并输入用户名和密码,就像在控制台上一样。

像这样的文本文件

jim <return>
a3drtZdf <return>

脚本中可能有一个 read -p "username" $USERread -p password $PASS,然后会使用这些值来执行adduser -u $USER -p $PASS

不确定它是否会起作用,但实际上应该可以。我做了类似的事情,但不是完全相同的事情。

所以最后你会这样做

ssh [email protected] < values.txt -i id_rsa_useradd

该脚本将捕获输入并执行它然后退出。

相关内容