Benim sorunum, bir sunucuda env değişkenleri (GIT_EXEC_PATH gibi) ayarlamak zorunda olmasıdır. Değişkenleri her bağlantıya ihtiyacım var (bash ve uzak komutlar ile). Bu değişkenleri bash ile .bash_profile ile ayarlamayı başardım, ancak uzak komutlarda sorun yaşıyorum. Gerçek rsa anahtarından önce ~ / .ssh / authority_keys komutları yazmanın mümkün olduğunu gördüm, ancak her zaman orada yazmak istemiyorum, kalıcı bir çözüme ihtiyacım var ... ~ / .ssh / rc dosyası her ssh girişi tarafından yürütülür, bu yüzden env değişken bildirimlerimi oraya koydum, ancak işe yaramadı. Değişkenler rc dosyasında ayarlanır, ancak bundan sonra kaybolurlar. : S Belki rc dosyası bir alt kabukta çalışır: S Bu değişkenleri bash ve uzak komutlarda kod çoğaltması olmadan tanımlamanın bir yolu var mı?
Düzenle:
Soruyu düzenledim, çünkü sunucu bir godaddy paylaşılan ana bilgisayarı olduğundan benzersiz bir yapılandırmaya sahip. / Etc / ssh / sshd_config ve / etc / ssh / ssh_config dosyaları boş. Bu dosyalarda yorumlar var, merak ediyorsanız buraya kopyalayabilirim.
- ~ / .Bash_profile kaynaklanır (yalnızca bash bağlantıları ile),
- ~ / .bashrc asla kaynaklanmaz,
- ~ / .profil asla kaynaklanmaz,
- ~ / .ssh / ortamı hiçbir zaman kaynaklanmaz,
- ~ / .ssh / rc kaynaklanır (bash ve uzaktan her ikisi tarafından), ancak değişkenlerin kaybolması nedeniyle alt kabukta çağrıldığını düşünüyorum.
- ~ / .Ssh / yetkili_anahtarları her zaman kaynaklanır, ancak her rsa anahtarından önce komutları yazmak zorundayım (böylece bununla yapılandırmak istemiyorum).
Özet:
Bash'i (.bash_profile ile) iyi yapılandırabilirim, ancak uzak aramaları yapılandıramıyorum. İşte sorun bu. Hem bash hem de uzak komutlar tarafından sağlanan bir dosya arıyorum.
Örneğin:
Git-upload-pack komutu exe dosyasını bulur, çünkü GIT_EXEC_PATH env değişkeni ayarlanmıştır, ancak remote: "git clone user@domain.com: myrepo local / myrepo" sunucu bu komutu bulamaz, çünkü GIT_EXEC_PATH ayarlanmadı.
Edit2:
Göre bu ve benim printenv günlükleri: env değişkenleri devreye girmiyor neden bir bilmece böylece ~ / .ssh / rc değil alt kabukta normal kabukta çalışıyor ...
Yürütülebilir bir dosya oluşturdum: ~ / logenv :
echo "" >> mylog.txt
date >> mylog.txt
printenv >> mylog.txt
echo "" >> mylog.txt
Ve bunu ~ / .ssh / rc dizinine koyun :
export AAA=teszt
source ~/logenv
Bash login & "source logenv" sonucu:
Tue May 15 04:21:37 MST 2012
TERM=cygwin
SHELL=/bin/bash
SSH_CLIENT=censored
SSH_TTY=/dev/pts/2
USER=myuser
AAA=teszt
MAIL=/var/mail/myuser
PATH=/usr/local/bin:/bin:/usr/bin
PWD=/home/content/65/7962465
SHLVL=3
HOME=/var/chroot/home/content/65/7962465
LOGNAME=myuser
SSH_CONNECTION=censored
_=/usr/bin/printenv
Tue May 15 04:21:41 MST 2012
HOSTNAME=censored
TERM=cygwin
SHELL=/bin/bash
HISTSIZE=1000
SSH_CLIENT=censored
Uzaktan "ssh myuser@domain.com 'exec ~ / logenv'" sonucu:
Tue May 15 04:25:52 MST 2012
SHELL=/bin/bash
SSH_CLIENT=censored
USER=myuser
AAA=teszt
MAIL=/var/mail/myuser
PATH=/usr/local/bin:/bin:/usr/bin
PWD=/home/content/65/7962465
SHLVL=3
HOME=/var/chroot/home/content/65/7962465
LOGNAME=myuser
SSH_CONNECTION=censored
_=/usr/bin/printenv
Tue May 15 04:25:52 MST 2012
SHELL=/bin/bash
SSH_CLIENT=censored
USER=myuser
PATH=/usr/local/bin:/bin:/usr/bin
MAIL=/var/mail/myuser
PWD=/home/content/65/7962465
HOME=/var/chroot/home/content/65/7962465
Bu yüzden rc dosyası kaynaklı, ancak bundan sonra değişkenler hayal kırıklığı yaratıyor ...: S