2016-03-04 127 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