SSH – 通过每个连接设置env vairables – godaddy共享主机
我的问题是,我必须在服务器上设置env变量(如GIT_EXEC_PATH).我需要每个连接的变量(所以通过bash和远程命令).我设法用bash和.bash_profile设置这些变量,但我的远程命令有问题.我发现在实际的rsa键之前可以在?/ .ssh / authorized_keys中编写命令,但是我不想总是在那里写,我需要一个永久的解决方案……我发现了?/ .ssh / rc文件是由每个ssh登录执行的,所以我把我的env变量声明放在那里,但它没有用.变量在rc文件中设置,但之后就消失了. :S也许rc文件在子
shell中运行:S有没有办法在bash和远程命令中定义这些变量而不需要代码重复?
编辑: 我编辑了这个问题,因为服务器是一个godaddy共享主机,所以它有一个独特的配置. / etc / ssh / sshd_config和/ etc / ssh / ssh_config文件为空.这些文件中有评论,如果你好奇我可以在这里复制. >?/ .bash_profile来源(仅限bash连接), 摘要: 我可以配置bash井(使用.bash_profile),但我无法配置远程调用.那就是问题所在.我正在寻找一个由bash和远程命令提供的文件. 例如: git-upload-pack命令找到exe文件,因为设置了GIT_EXEC_PATH env变量,但是使用远程:“git clone user@domain.com:myrepo local / myrepo”服务器找不到该命令,因为GIT_EXEC_PATH没有设定. EDIT2: 根据this和我的printenv日志:?/ .ssh / rc在普通shell中运行,而不是在子shell中运行,所以这是一个谜,为什么env变量不会粘… 我创建了一个可执行文件:?/ logenv: echo "" >> mylog.txt date >> mylog.txt printenv >> mylog.txt echo "" >> mylog.txt 把它放到?/ .ssh / rc中: export AAA=teszt source ~/logenv 通过bash登录& “来源logenv”的结果是: 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 通过远程“ssh myuser@domain.com’exec~ / logenv’”结果是: 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 所以rc文件来源,但之后变量消失……:S 解决方法
假设您在/ etc / ssh / sshd_config中使用了UsePAM,并假设您希望为每个用户设置这些环境变量,则可以为您设置pam set环境变量.如果您在/ etc / gitenv中定义了环境变量,则可以将此行添加到/etc/pam.d/sshd
auth required pam_env.so envfile=/etc/gitenv 或者通过插入此文件,您可能会发现已经使用了pam_env.so,并且已经有一个文件可以添加内容.只是要小心,并确保在结束ssh会话之前已经彻底测试了您的更改,因为当您弄乱pam时,如果您不小心,您可能会完全破坏您登录服务器的能力. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |