我遇到問題描述here流浪文件。爲ssh代理設置語言環境
出現此問題是因爲主機通過ssh將語言環境設置爲guest。
解決此問題的正確方法是什麼?
我怎麼能強迫流浪漢ssh來做到這一點:
LC_ALL=en_US.UTF-8 vagrant ssh
每一次?
我遇到問題描述here流浪文件。爲ssh代理設置語言環境
出現此問題是因爲主機通過ssh將語言環境設置爲guest。
解決此問題的正確方法是什麼?
我怎麼能強迫流浪漢ssh來做到這一點:
LC_ALL=en_US.UTF-8 vagrant ssh
每一次?
我建議在Vagrantfile
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/vivid64"
ENV['LC_ALL']="en_US.UTF-8"
end
的變化重寫主機的語言環境是不可見的流浪外部(主機ENV變量保持不變)
當連接到我的Vagrant Ubuntu機箱時,我在OSX上遇到了同樣的問題(該解決方案與Linux類似)。
# SendEnv LANG LC_*
這基本上是從發送LANG
和LC_ALL
(所有LC_
變量)到遠程停止ssh
:
我簡單地通過編輯/etc/ssh_config
(或/etc/ssh/ssh_config
在Linux上)和註釋以下行「解決」它主機,從而導致使用框上的默認值。在這種情況下,en_US.UTF-8
。
顯然這將導致您的遠程連接始終使用默認的語言環境,這可能不是您想要的。
我相信你也可以設置每個主機的SSH偏好,但從來沒有這樣做。我對此感興趣,可能值得期待。
我的回答:我只是添加一行來我ansible劇本。但它不是唯一的方面回答流浪
- name: set locale
lineinfile: dest=/etc/default/locale line="LC_ALL=C"
LC_ALL=en_US.UTF-8
LC_CTYPE=en_US.UTF-8
通過無業遊民
正確的方法將這些行添加到虛擬機的〜/ .bash_profile中,並重新啓動虛擬機是配置虛擬機中的ssh守護進程不接受這個環境變量。如果您使用泊塢作爲供應者,你可以把你的Dockerfile
$ cat /etc/ssh/sshd_config | grep AcceptEnv
# AcceptEnv LANG LC_*
:
sed -i 's/AcceptEnv/# AcceptEnv/' /etc/ssh/sshd_config
您
修改您的開發環境中的文件/etc/ssh/sshd_config
和發表意見AcceptEnv
線這樣的還需要生成並設置默認語言環境。你可以這樣做:
# Set the locale
ENV LANG en_US.UTF-8
RUN locale-gen en_US.UTF-8 && update-locale LANG=en_US.UTF-8
請給你的答案添加一些解釋。代碼只有答案一般認爲是低質量 – Tristan 2016-01-04 01:41:26
很好的答案!我會檢查並接受它,如果它工作 – kharandziuk 2016-01-04 09:45:38
我想它的工作。但有一個問題:ENV ['LC_ALL'] =「en_US.UTF-8」'是否最終會改變主機上的某些東西? – kharandziuk 2016-01-04 09:58:56