多个用户使用脚本通过无密码 SSH 访问远程服务器

多个用户使用脚本通过无密码 SSH 访问远程服务器

我目前正在设置一个与 Active Directory 绑定的 Linux 框。此框将允许用户使用其 AD 用户名和密码通过 SSH 进入以收集信息(框 A)。问题是我试图在 /etc/bash.bashrc 中创建一个函数,以便用户只需键入“get_info”即可,例如,该函数将通过 SSH 进入远程计算机(框 B)运行命令并将信息输出回用户。

问题是,我在 Box A 上生成了一个 rsa 密钥,并将其添加到 Box B 的 authorized_keys 中,并且运行正常。我遇到的问题是,如何为当前用户和登录 Box A 的任何新用户一次性设置它。

有没有比我目前所做更好的方法。本质上我只需要连接到远程框,运行命令,将信息输出回用户,就这样。我如何允许新用户通过脚本连接到远程框,而无需为他们生成 RSA 密钥。

get_info 函数将提供一个值“get_info 012345”并返回结果。

答案1

需要什么:

  • 用户共享密钥
  • 在服务器上创建通用脚本
  • 在您的 ssh 配置中限制用户执行特定命令:

    命令“/bin/myscript.sh”,无端口转发,无X11转发,无代理转发,无pty ssh-dss AAAAB3....o9M9qz4xqGCqGXoJw=用户

  • 在本地机器或主文件夹中创建脚本,执行到远程服务器的 ssh 命令,在服务器上执行脚本,然后输出

  • 如果您需要输入远程会话,您可以运行本地脚本

    ./本地.sh 01234

执行:

ssh user@remote '/bin/myscript.sh $1'

它被解释为

ssh user@remote '/bin/myscript.sh 01234

答案2

与其更改/etc/bash.bashrc,为什么不创建一个程序(可能用 bash 编写)并使其位于本地主机上所有用户的标准 PATH 中。此程序可以使用标志调用 ssh 以指向本地系统上的通用私钥(例如,您可以将其放在 /etc 或 /etc/opt/ 中的某个位置)。远程系统将有一个包含公钥文件的单个帐户,该文件经过修改(请参阅 ssh 手册页),以便任何使用公钥的人只能执行一个命令(即您的信息命令)。

相关内容