Belirli bir SSH ana bilgisayarı için değişken ayarlama


17

İçinde ssh_config, bazı ortam değişkenlerini ana bilgisayara dışa aktarmayı seçebilirsiniz SendEnv.

Her değişken için bu değişken için belirli bir değeri zorlamanın bir yolu var mı? Örneğin, değişkeni yalnızca ana bilgisayara bağlanırken $FOOdeğerle dışa aktarmak mümkün müdür ?barexample.com


Yanıtlar:


16

İçindeki ortam değişkeni için belirli bir değerssh_config veremezsiniz, ancak varolan ortam değişkenini yalnızca belirli ana bilgisayarlara gönderebilirsiniz.

Host example.com
    SendEnv FOO

Zinciri tamamlamak için:

FOO=bar ssh user@example.com

Son olarak, uzak sunucu listelenen ortam değişkeni bulunmalıdır AcceptEnvonun içinde sshd_config.

AcceptEnv FOO

Kaçınılmasını istediğiniz şey nedir?
Michael Hampton

1
Belirli bir değere sahip bir değişken göndermek için bir takma ad yazmak zorunda.
inkaphink

Üzgünüm, yapabileceğin başka bir şey yok ... bilgisayar aklını okuyamazsa. :)
Michael Hampton

6
Ne ben isterdi gibi bir şey olmuş buna rağmen ;-) şüphelerimi onayladığınız için teşekkür ederiz SetVar FOO='bar'içinde ssh_config;)
ℝaphink

2
Benim için yinelenen durum, eski sistemlerin desteklememesi, TERM=tmux-256colorbu nedenle uzak ana bilgisayar başına (joker karakterlerle) bir geri dönüş istiyorum.
Jed

4

Sen kullanarak belirli bir değer verebilir SetEnvsenin içinde ~/.ssh/config, örneğin

Host *
  SetEnv FOO=bar

Başı man ssh_config:

Sunucuya gönderilecek bir veya daha fazla ortam değişkenini ve içeriğini doğrudan belirtin. Benzer şekilde SendEnv, sunucunun ortam değişkenini kabul etmeye hazır olması gerekir.

Sunucunuzun şu satırı aldığını varsayarsak /etc/ssh/sshd_config:

AcceptEnv LANG LC_* FOO

Ayrıca şunları da kontrol edin: man ssh_configve man sshd_config.


2
Şaşkın okuyucu için not (kendim gibi, bunu ilk okuduğumda): Bu, 2018 yılının Ağustos ayında yayınlanan OpenSSH 7.8'den beri yeni ve işletim sistemi güncellemeleri yoluyla ortalama bir kullanıcı tarafından kullanılabilir hale gelmesi biraz zaman alacak. (Ama bir kez yaygın hale geldiğinde, bu sorun için en iyi çözüm olacaktır)
Irfy

1

Başka bir fikir, ssh komutundaki ortam değişkenlerini ayarlamak ve örneğin etkileşimli bir kabuk çalıştırmaktır. env-var 'MANWIDTH' ile etkileşimli bir kabuk çağırmaya çalışıyorum:

ssh example.com 'MANWIDTH=120 bash -li'

0

.Ssh / config dosyasını kullanarak ana makine yapılandırma değerlerini ayarlayabilirsiniz. Örneğin:

Host example.com
SendEnv FOO

Sunucunun da desteklemesi gerektiğini unutmayın.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.