首頁 > 軟體

解決SSH登入使用者執行的命令部分環境變數引數不生效的問題

2020-06-16 16:51:30

問題概況

Linux機器在/etc/profile設定完成環境變數後,SSH到目標機器執行命令,但是獲取不到已設定的環境變數值。
例如場景:
在/etc/profile設定了http代理

export all_proxy=http://$PROXY_HOST:8118
export ftp_proxy=http://$PROXY_HOST:8118
export http_proxy=http://$PROXY_HOST:8118
export https_proxy=http://$PROXY_HOST:8118

然後 SSH 目標機器,並通過pm2 start app.js 啟動應用程式,但是應用程式的請求走不到http代理程式。

解決辦法

在 /etc/bashrc 檔案中,把設定的那一坨也仍進去。就OK了。

問題原因

SSH 登入預設為非shell登入方式,而非shell登入方式執行的是bashrc指令碼初始化環境變數。
而shell登入方式則是執行的是profile指令碼初始化環境變數。

參考資料很好的說明了這個問題,就不搬磚了。

本文永久更新連結地址https://www.linuxidc.com/Linux/2018-05/152542.htm


IT145.com E-mail:sddin#qq.com