Windows

使用 cygwin 從 windows ssh SendEnv 到 linux 伺服器

  • August 23, 2013

我正在從 windows cygwin 對 Open SU​​SE linux 伺服器進行 ssh。我正在嘗試通過 ssh 命令發送我的一個本地環境變數,以便我可以在登錄後立即載入一些特定的 .bashrc 文件。這是我嘗試過的。

Windows 機器有這個環境變數

IDENTITY=samiron
echo %IDENTITY%
  samiron

在linux機器上我有

vim /etc/ssh/sshd_config
AcceptEnv IDENTITY

/home/user/.bashrc我寫過類似的東西

export ME=$IDENTITY

我的計劃是有一個像文件一樣的文件.bashrc.samironsource ~/.bashrc.$ME.bashrc文件中執行。

但是,我正在像下面那樣做 ssh 並期望變數$ME包含"samiron"

ssh -o SendEnv=IDENTITY user@server.com

但是登錄後

user@server:~> echo $ME

它什麼也沒顯示。任何人都可以建議我在這裡做錯了什麼?

在它可以按預期工作之前應該滿足這兩個條件:

  1. 您的 ssh 伺服器必須配置為接受來自本地客戶端環境的變數轉發。由於允許此類行為可能存在安全風險,因此預設情況下通常禁用它。您可以通過在 ssh 伺服器配置中指定**“AcceptEnv”指令來啟用它。所以把這樣的東西放到/etc/ssh/sshd_config文件中並重新載入ssh 伺服器服務(變數名可以包含萬用字元,你可以指定多個用空格分隔的變數,細節在man sshd_config**)

AcceptEnv VARIABLE_NAME 2. 此功能僅適用於版本 2的 ssh 協議。如果沒有更改(**“協議”**指令),這幾乎在所有現代 Linux 發行版中都預設實現。

引用自:https://serverfault.com/questions/533150