禁止 SSH 傳遞 locale 環境變數

Undefined443發表於2024-04-21

SSH 在連線遠端機器時預設會傳遞一些環境變數,其中就包括你本機的 locale 變數。這會導致遠端機器的 locale 配置變成和你本地主機一樣。有時候我們不希望這種行為,我們可以透過修改 SSH 配置檔案來取消這一行為。

編輯 /etc/ssh/ssh_config 檔案:

sudo vim /etc/ssh/ssh_config

可以找到檔案中有一項 SendEnv LANG LC_* 設定:

Host *
    SendEnv LANG LC_*

這個設定導致了我們在使用 SSH 連線時自動傳遞了 LANGLC_* 環境變數。把這條設定註釋掉就可以了:

#Host *
#    SendEnv LANG LC_*

StackOverflow 中提到還可以在 ~/.ssh/config 中設定取消傳遞 LANGLC_* 環境變數的方法,但是 SSH 貌似會預設採用系統設定中的環境變數配置,因此這個方法無效。

參考:How not to pass the locale through an ssh connection command | StackOverflow

相關文章