Editado para reflejar el problema que realmente quería resolver:
Necesito configurar mi entorno rubí para poder implementarlo a través de Capistrano.
export PATH=$HOME/.rbenv/bin:$PATH
eval "$(rbenv init -)"
Los puse en ~ deploy / .profile, pero cuando entro, no se están ejecutando. Ideas?
Estoy ejecutando Ubuntu 12.04.
La pregunta original fue:
Cuando ingreso a otra cuenta en localhost, no carga mi .profile. ¿Cómo puedo forzar a ssh a cargarlo? Estoy ejecutando Ubuntu 12.04.
.profile
solo se carga para shells de inicio de sesión, que no es una sesión ssh (de forma predeterminada). Si desea que algo se ejecute al inicio de todos los shells interactivos, póngalo en su.bashrc
lugar (.zshrc
o lo que sea que use su shell).Además, si solo desea iniciar sesión en otra cuenta en la máquina local, ssh probablemente sea excesivo. Es posible que desee usar
su
o algo en su lugar.fuente
.bashrc
que tampoco está cargado.Usar bash debería resultar en lectura
~/.bashrc
. Lo siguiente puede ayudar con ksh y sh (bash en modo sh), o cuando~/.bashrc
no se ejecuta durante el inicio de sesión.El sshd consulta
~/.ssh/environment
(verifique los permisos de sshd_config (5)) y~/.ssh/sshrc
o~/.ssh/rc
. Esto da la posibilidad de configurarENV=~/.profile
oBASH_ENV=~/.profile
ySSH_LOGIN=Y
En
~/.profile
Tengo el siguiente diseño (ReemplazarENV
conBASH_ENV
cuando use bash):fuente
Bash
~/.profile
solo lee cuando es un shell de inicio de sesión y~/.bash.bashrc
solo si tiene un terminal, ninguno de los cuales es verdadero por defecto cuando se invoca un comando con ssh. Sin embargo, hay varias otras opciones para configurar el entorno, en el servidor, todas desafortunadamente dependiendo de la configuración del sistema:~/.zshenv
incluso en este caso; sin embargo, no hay un archivo de configuración correspondiente para bash.PermitUserEnvironment
opción está activada/etc/sshd_config
, ssh leerá~/.ssh/environment
. Lamentablemente, esta opción está desactivada por defecto.pam_env.so
se llama conuser_readenv=1
in/etc/pam.d/sshd
, se leerá~/.pam_environment
. Si bien el módulo no es el predeterminado, se llama así al menos en Ubuntu .command=
directiva en el archivo de claves autorizadas llamando a un script de contenedor que establece el entorno y ejecuta$SSH_ORIGINAL_COMMAND
al final (I el comando es uno para shell, por lo que eval es apropiado aquí, pero no estoy seguro) .fuente
Probablemente tenga un
~/.bash_profile
, que anula~/.profile
.fuente