我目前正在build立一个绑定到Active Directory中的Linux机器。 这个盒子将允许用户使用他们的AD用户名和密码进行SSH连接以收集信息(框A)。 问题是我试图在/etc/bash.bashrc中创build一个函数,所以用户所要做的就是键入“get_info”,例如,函数将SSH连接到远程机器(Box B)运行一个命令并输出信息回到用户。
这个问题是,我已经生成了框A的RSA密钥,将其添加到框B authorized_keys,它工作正常。 我遇到的问题是,如何为当前用户和任何login到框A的新用户设置一次。
有没有比我目前做的更好的方法。 基本上我只需要连接到远程盒子,运行一个命令,输出信息返回给用户,就是这样。 我怎样才能允许新用户通过脚本连接到远程盒,而不必为他们生成RSA密钥。
get_info函数将被提供一个值“get_info 012345”并返回结果。
需要什么:
在你的SSHconfiguration限制用户特定的命令:
命令=“/ bin / myscript.sh”,无端口转发,no-X11转发,无代理转发,no-pty ssh-dss AAAAB3 …. o9M9qz4xqGCqGXoJw =用户
在本地文件夹或其主文件夹中创build脚本,执行ssh命令到远程服务器,在服务器上执行脚本,然后输出
如果您需要input远程会话,您可以运行您的本地脚本
./local.sh 01234
其中执行:
ssh user@remote '/bin/myscript.sh $1'
它被解释为
ssh user@remote '/bin/myscript.sh 01234
为什么不改变/etc/bash.bashrc ,为什么不为本地主机上的所有用户创build一个程序(可能是用bash编写的),位于标准PATH中。 这个程序可以调用带有标志的ssh来指向本地系统上的公用私钥(例如,你可以把它放在/ etc或/ etc / opt / somewhere中)。 远程系统将有一个包含公用密钥文件的帐户,并进行修改(请参阅ssh手册页),以便任何使用公钥的人都只能执行一个命令(即您的信息命令)。