我有一臺主機,我在其上創建了一個腳本。在ssh上運行bash腳本
只要用戶通過ssh登錄,腳本就會執行bashrc啓動腳本。
現在我試圖讓腳本執行,即使用戶沒有真正登錄,只是運行一個命令。 比如我要執行的腳本如果用戶運行以下:
ssh [email protected] some_command
有沒有辦法實現上述?
我有一臺主機,我在其上創建了一個腳本。在ssh上運行bash腳本
只要用戶通過ssh登錄,腳本就會執行bashrc啓動腳本。
現在我試圖讓腳本執行,即使用戶沒有真正登錄,只是運行一個命令。 比如我要執行的腳本如果用戶運行以下:
ssh [email protected] some_command
有沒有辦法實現上述?
影響所有用戶的解決方案可以使用pam-exec
並在用戶登錄事件上啓動腳本。檢查pam-exec manual page以及如何使用它的例子pam-exec scripting。
爲單個用戶一個簡單的解決方案應該是添加腳本在rc
文件ssh
用戶,添加你的腳本:
~/.ssh/rc
我已經做了一些試驗和rc
解決方案正常工作你的情況,它會在用戶通過ssh
啓動遠程命令時執行。
如果您沒有rc
文件,只需創建它即可。
感謝您的回覆!但是如果我在〜/ ssh目錄下沒有rc文件呢?順便說一句,這是一個贏得主機運行cygwin –
不客氣,如果你發現我的答案有幫助,請upvote和/或接受它。如果你沒有'rc'文件,只需在'〜/ .ssh /'中創建它。 – Atropo
當我創建它時,應該在裏面寫什麼? '!/ bin/bash ./script_name'?或者是其他東西? –
您可以編輯authorized_keys文件,並添加一個命令,是這樣的: 命令=「/家/ michale /斌/ dothis.sh」 ...公鑰... 瞭解更多詳情閱讀ssh和authorized_keys的單證。
那麼上述方法有什麼問題?如果您擁有正確配置的所有內容(權限),則可以運行「ssh user @ host'/path/to/script.sh'」等命令。 – hovanessyan
我想,當用戶通過'ssh'運行腳本時,他不僅希望在用戶登錄時在遠程主機上執行腳本。 – Atropo