2011-04-15 41 views
0

我正在处理一个人ssh的时候运行的脚本。它所做的是检测该命令是否授权该帐户。在我的authorized_keys文件我有作为错误的SSH强制断开连接

命令=“/路径/到/脚本”键...

在我检查被允许,如正常运行时间的命令脚本。我想要做的是如果命令不被允许,例如mkdir,我希望会话断开连接。我试图阻止大多数命令运行,并且不允许打开的连接与远程服务器交互。

有什么我可以调用,将强制断开当前连接作为错误,所以我可以写入标准错误?

回答

0

我一直在想这个问题。这是解决方案和一些解释。

当启动SSH连接时,它会自动运行脚本。由于该脚本正在运行,并且将是通过ssh连接运行的唯一东西,除非您调用exec,那么当脚本结束时,连接到服务器也是如此。

要提前结束连接,只需运行exit命令。这里有3种方法。

猛砸

exit 

的Python

import sys 
sys.exit 

红宝石

exit 

在Python和Ruby它抛出一个异常,如果未捕获的退出。希望能帮助别人。

0

kill -HUP 0,也许? (发送SIGHUP到进程组。)远程会将信号作为错误进行中继,通常是某种形式的“连接丢失”。

+0

这会杀死当前连接还是所有当前连接?我不希望这会对其他任何人造成影响。 – percent20 2011-04-15 22:23:36

+0

进程组是与该连接关联的每个进程。 – geekosaur 2011-04-15 22:26:56

+0

这就是我以为你在说什么,只是想确定那是你在说什么。 – percent20 2011-04-15 22:28:53