2011-04-15 39 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