這是我嘗試使用cgi-perl腳本的第一步。我在我的(root用戶)本地機器和遠程機器之間建立了SSH密鑰。我試圖在遠程盒子上運行一個命令,並在我的本地機器託管的網頁上顯示輸出。該腳本從命令行運行良好,但是,當從網頁調用時會引發SSH密鑰錯誤,因爲運行腳本的用戶是apache而不是root用戶。有沒有辦法解決這個問題?使用cgi-perl腳本的無密碼SSH
回答
如果您還沒有一個受限帳戶,創建一個,創建一個SSH密鑰,並補充說,應允許用戶(例如,通過visudo
,more about sudoers
)通過sudo
執行到/etc/sudoers
文件中的命令。這是最安全的方法。
你甚至可以用這種方式限制用戶,他可以只有執行這些命令。對於
我不知道Perl的,但正常的,你可以指定哪些用戶應通過SSH進行登錄:
ssh [email protected]
更新:
您使用的是Net::SSH::Perl
模塊?如果是這樣,只需設置相應user
:
my $host = "perlhowto.com";
my $user = "user";
my $password = "password";
#-- set up a new connection
my $ssh = Net::SSH::Perl->new($host);
#-- authenticate
$ssh->login($user, $pass);
(我只是複製和粘貼從perlhowto.com
這個代碼)
好的。我只需要與遠程主機的管理員進行交談即可建立訪問權限。但是有沒有一種方法可以讓腳本在從網頁調用時以root身份運行? – 2010-05-24 18:46:50
@AV:正如我所說的,通常你可以指定哪個用戶應該通過SSH登錄:'user @ host',在你的情況下它將是'root @ host'。但它也可能是你不允許ssh作爲root用戶。 – 2010-05-24 18:48:20
實際上,本地計算機上的root用戶連接爲「dummy @ remote」,並且虛擬用戶已被授予獲取狀態的權限。是的,我會嘗試遵循獲得apache的ssh密鑰鏈接到虛擬用戶的路線。 – 2010-05-24 18:51:39
- 1. 使用密碼的螞蟻腳本通過SSH進行的Rsync
- 2. 在bash腳本中等待ssh密碼
- 3. 在bash腳本中使用ssh密鑰
- 4. 使用密碼自動執行SSH登錄的Shell腳本
- 5. 使用ssh啓用無密碼驗證
- 6. Perl腳本,而無需使用密碼
- 7. 無密碼ssh不用ssh-key握手
- 8. 無密碼ssh可以使用Hadoop
- 9. 發送命令密碼使用期望在SSH連接腳本
- 10. 期望腳本使用ssh更改密碼
- 11. Ganymed ssh中的無密碼ssh
- 12. Hadoop:無密碼SSH錯誤
- 13. 無密碼SSH登錄
- 14. 希望SSH無密碼
- 15. SSH無法記住密碼
- 16. 在bash腳本中的SSH仍然提示輸入密碼,而命令行上的ssh使用密鑰驗證
- 17. 腳本github命令沒有SSH密鑰密碼
- 18. ssh密鑰使用bash密碼
- 19. 錯誤'|'使用python腳本的密碼
- 20. 包含SCP和SSH的bash腳本的一個密碼提示
- 21. 使用'expect'命令將密碼傳遞給遠程運行腳本的SSH
- 22. 使用bash腳本輸入ssh密碼,沒有這樣的文件或目錄
- 23. 表示git在shell腳本中拉出的密碼,沒有ssh?
- 24. 暫時刪除shell腳本中的ssh私鑰密碼我
- 25. 將密碼傳遞給Unix腳本中的ssh提示符
- 26. 通過ssh在Linux服務器上更改密碼的腳本
- 27. PHP運行期望SSH密碼的腳本
- 28. 不使用密碼的SSH連接
- 29. Gitpython ssh密碼
- 30. SSH與密碼
創建用戶阿帕奇SSH密鑰? – 2010-05-24 18:35:20
登錄到遠程框的用戶需要sudo權限才能獲取狀態。我不認爲管理員會讚賞太多的帳戶有訪問權限。 – 2010-05-24 18:39:13
@AV:但是爲root創建一個SSH密鑰對也不是一個好主意。特別是如果這應該用於自動化Web過程。 – 2010-05-24 18:40:26