當知道該用戶的linux用戶名和密碼時,是否有方法從特定用戶下的node.js啓動進程(bash)。Node.js基於Web的SSH
我想通過socket.io將終端從服務器轉移到網絡瀏覽器,我需要每個用戶都在他們的用戶名下進行操作,因此用戶權限的行爲就像正確的ssh。
當知道該用戶的linux用戶名和密碼時,是否有方法從特定用戶下的node.js啓動進程(bash)。Node.js基於Web的SSH
我想通過socket.io將終端從服務器轉移到網絡瀏覽器,我需要每個用戶都在他們的用戶名下進行操作,因此用戶權限的行爲就像正確的ssh。
基本上你是通過網絡共享一個SSH連接。
你應該從node.js的派生子進程的內置功能child_process.spawn類似如下:
var spawn = require('child_process').spawn; ls = spawn('ls', ['-lh', '/usr']);
在這裏看到: http://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options
要啓動的每個用戶SSH您應該使用:(在子進程中產生)
ssh -tt [email protected] [command_to_execute]
其餘的是由你來鏈接node.js上的子進程與網頁上的接口與你的socket.io.js
所以我實際上需要ssh到本地機器並通過https發送輸出?有沒有辦法在本地機器上切斷它的SSH? – user978734
SSH訪問必須受限於node.js服務器,而不會將關鍵細節暴露給用戶。爲了獲得輸出,生成的ssh進程有stdout和stderr流,你可以使用socket.io捕獲和發送這些流,參見http://nodejs.org/api/child_process.html#child_process_child_stdout – user568109
如何連接時使用telnet shell在同一臺機器上,而節點服務器不失安全性。 – user978734