2013-09-25 132 views
1

我有一臺主機,我在其上創建了一個腳本。在ssh上運行bash腳本

只要用戶通過ssh登錄,腳本就會執行bashrc啓動腳本。

現在我試圖讓腳本執行,即使用戶沒有真正登錄,只是運行一個命令。 比如我要執行的腳本如果用戶運行以下:

ssh [email protected] some_command 

有沒有辦法實現上述?

+0

那麼上述方法有什麼問題?如果您擁有正確配置的所有內容(權限),則可以運行「ssh user @ host'/path/to/script.sh'」等命令。 – hovanessyan

+0

我想,當用戶通過'ssh'運行腳本時,他不僅希望在用戶登錄時在遠程主機上執行腳本。 – Atropo

回答

2

影響所有用戶的解決方案可以使用pam-exec並在用戶登錄事件上啓動腳本。檢查pam-exec manual page以及如何使用它的例子pam-exec scripting

爲單個用戶一個簡單的解決方案應該是添加腳本在rc文件ssh用戶,添加你的腳本:

~/.ssh/rc 

我已經做了一些試驗和rc解決方案正常工作你的情況,它會在用戶通過ssh啓動遠程命令時執行。

如果您沒有rc文件,只需創建它即可。

+0

感謝您的回覆!但是如果我在〜/ ssh目錄下沒有rc文件呢?順便說一句,這是一個贏得主機運行cygwin –

+0

不客氣,如果你發現我的答案有幫助,請upvote和/或接受它。如果你沒有'rc'文件,只需在'〜/ .ssh /'中創建它。 – Atropo

+0

當我創建它時,應該在裏面寫什麼? '!/ bin/bash ./script_name'?或者是其他東西? –

0

您可以編輯authorized_keys文件,並添加一個命令,是這樣的: 命令=「/家/ michale /斌/ dothis.sh」 ...公鑰... 瞭解更多詳情閱讀ssh和authorized_keys的單證。