2016-03-04 92 views
0

我正在使用SSH在我的服务器和客户端之间交换一些密钥。如何限制绕过bash ssh隧道

在这里,客户端应该使用SSH发送给我他的公钥;我的问题是,如何限制bash中的其他命令?

即使我用rbash,客户端可以运行类似的命令:

ssh remote_host command_to_run 

我能做些什么来解决这个问题?

+0

您能否澄清一下“其他命令bash”是什么意思?还请告诉我们你是如何进行密钥交换的。 – jkdba

回答

2

当您使用特定的SSH密钥时,您是否尝试仅授权服务器上的一个命令?如果是,您可以检查authorized_keys文件的command声明。

例如仅授权ps -aux当用户使用foobar的KEY,你可以编辑/home/foobar/.ssh/authorized_keys这样:

command="ps -aux" ssh-rsa KEY

manual

+0

我没有在我的配置文件中找到命令 – GreenX

+0

您可以添加它。请参阅编辑。 – rdupz

+0

非常感谢你 – GreenX

1

请查看您的(服务器)机器上的sshd_config。 “匹配”和“ForceCommand”应为您提供限制可用命令(或连接时执行哪些命令)的方法 。

您可能还会考虑只允许scp(到特定目录) 并从服务器上的守护进程(或cron作业)获取文件。

+0

你能解释一下吗 – GreenX