~ / .профиль не загружается при использовании SSH (Ubuntu)

отредактированы, чтобы отразить эту проблему я хотел решить:

Мне нужно настроить свою среду ruby, чтобы я мог развертываться через Capistrano.

export PATH=$HOME/.rbenv/bin:$PATH
eval "$(rbenv init -)"

я помещаю их в ~deploy/.профиль, но когда я подключаюсь, они не запускаются. Идеи?

Я с Ubuntu 12.04.


исходный вопрос был:

когда я ssh в другую учетную запись на localhost, он не загружает мой .профиль. Как я могу заставить СШ, чтобы загрузить его? Я запускаю Ubuntu 12.04.

5
задан Charles R
09.02.2023 4:11 Количество просмотров материала 3675
Распечатать страницу

3 ответа

вы можете явно указать, что хотите запустить интерактивную оболочку входа:

 ssh user@host bash --login -i 

"роль" на ~/.profile (или ~./файл) и .bashrc для ssh есть другие файлы, (см.man ssh подробнее):

~/.ssh / среда

содержит дополнительные определения переменных среды; см. раздел среда выше.

~/.ssh / rc

команды в этом файле выполняются ssh, когда пользователь входит в систему непосредственно перед запуском пользовательской оболочки (или команды). Дополнительную информацию смотрите на странице справочника sshd(8).

14
отвечен 2023-02-10 11:59

.profile загружается только для оболочек входа, которых нет в сеансе ssh (по умолчанию). Если вы хотите что-то запускать при запуске для всех интерактивных оболочек, поместите его в .bashrc вместо (или .zshrc или все, что использует ваша оболочка).

кроме того, если вы просто хотите войти в другую учетную запись на локальной машине, ssh, вероятно, является излишним. Вы можете использовать su или что-то вместо.

5
отвечен qmega 2023-02-10 14:16

использование bash должно привести к чтению ~/.bashrc. Следующее могло бы помочь с ksh и sh (bash в SH режиме), или когда ваш ~/.bashrc не выполняется при входе в систему.

министр внутренних дел Великобритании советует ~/.ssh/environment (проверьте sshd_config (5) для разрешений) и ~/.ssh/sshrc или ~/.ssh/rc. Это дает возможность настроить ENV=~/.profile или BASH_ENV=~/.profile и SSH_LOGIN=Y

In ~/.profile у меня следующий макет (заменить ENV С BASH_ENV при использовании bash):


if [[ -n $SSH_LOGIN || -z $ENV ]]; then
     # Put here login initialization code
     unset SSH_LOGIN
     ENV=~/.profile
fi
 # Put here code thats get executed with each ksh/sh invocation
2
отвечен eremmel 2023-02-10 16:33

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх