![](/img/trans.png)
[英]How to load environment variables in a remote AIX machine through ssh while running script from Jenkin pipeline?
[英]Unable to ssh to a remote machine through shell script while accessing it from UI
我有一台Linux機器,在其中創建了一個cgi腳本(JarPatch.cgi),其代碼如下所示:
#!/usr/bin/perl
use warnings;
print "Content-type: text/html\n\n";
system ("sh JarPatch.sh");
#!/bin/bash
echo "Inside jar patching tool";
PJS_DEV=app4915@slcai833.us.oracle.com;
ssh -f $PJS_DEV "cd /slot/ems4915/appmgr/tmp; echo stopping server ; ./find_stop_servers.sh;"
echo "Exit jar patching tool";
該腳本將基本上關閉在遠程計算機上運行的服務器
問題陳述是這樣的:當我通過Linux終端執行此cgi腳本時。 我可以看到ssh命令正在執行。 服務器已關閉。
當我通過瀏覽器中的Windows計算機訪問cgi腳本時,將調用shell腳本,但ssh似乎無法正常工作。
任何人都可以給我指出解決此問題的指針嗎? 我是perl / shell集成的新手。 因此也可能缺少一些小東西。 謝謝
當您從Windows計算機ssh進行連接時,所有連接都是作為webuser建立的,該用戶無權ssh進入遠程計算機。 另一方面,當您從linux終端使用ssh時,您可以以具有授權的用戶身份使用ssh。 這是因為linux用戶在遠程服務器上具有其ssh密鑰。
您也可以嘗試研究ProxyCommand
可能會搶救出來,但我不知道它將如何與Windows一起工作。
另一種方法是為Web用戶創建ssh密鑰,並將其放入遠程服務器中,這將帶來安全風險。
當您以自己的身份運行它時, ssh
會提供您的密鑰來對您進行身份驗證。 當您通過Web服務器運行它時,Web服務器用戶正在嘗試運行ssh命令,並且沒有提供您的ssh密鑰,因此可能會提示您輸入密碼,但未成功登錄。
您可以通過為Web服務器用戶生成ssh密鑰並與目標系統共享該密鑰來解決此問題,至少可以說這對安全性有影響。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.