我正在处理一个人ssh的时候运行的脚本。它所做的是检测该命令是否授权该帐户。在我的authorized_keys文件我有作为错误的SSH强制断开连接
命令=“/路径/到/脚本”键...
在我检查被允许,如正常运行时间的命令脚本。我想要做的是如果命令不被允许,例如mkdir,我希望会话断开连接。我试图阻止大多数命令运行,并且不允许打开的连接与远程服务器交互。
有什么我可以调用,将强制断开当前连接作为错误,所以我可以写入标准错误?
我正在处理一个人ssh的时候运行的脚本。它所做的是检测该命令是否授权该帐户。在我的authorized_keys文件我有作为错误的SSH强制断开连接
命令=“/路径/到/脚本”键...
在我检查被允许,如正常运行时间的命令脚本。我想要做的是如果命令不被允许,例如mkdir,我希望会话断开连接。我试图阻止大多数命令运行,并且不允许打开的连接与远程服务器交互。
有什么我可以调用,将强制断开当前连接作为错误,所以我可以写入标准错误?
我一直在想这个问题。这是解决方案和一些解释。
当启动SSH连接时,它会自动运行脚本。由于该脚本正在运行,并且将是通过ssh连接运行的唯一东西,除非您调用exec,那么当脚本结束时,连接到服务器也是如此。
要提前结束连接,只需运行exit命令。这里有3种方法。
猛砸
exit
的Python
import sys
sys.exit
红宝石
exit
在Python和Ruby它抛出一个异常,如果未捕获的退出。希望能帮助别人。
kill -HUP 0
,也许? (发送SIGHUP到进程组。)远程会将信号作为错误进行中继,通常是某种形式的“连接丢失”。
这会杀死当前连接还是所有当前连接?我不希望这会对其他任何人造成影响。 – percent20 2011-04-15 22:23:36
进程组是与该连接关联的每个进程。 – geekosaur 2011-04-15 22:26:56
这就是我以为你在说什么,只是想确定那是你在说什么。 – percent20 2011-04-15 22:28:53