Как я могу передать уже переданный ssh ключ в tmux?

Материал, о котором Вы говорите, не составит очень на диске, возможно, приблизительно 1/2 ГБ самое большее. Если Ваше пространство будет то, так, чтобы трудный это было беспокойством, то необходимо будет найти минимальную установку без X и расти оттуда. Если Вы хотите закончить с чем-нибудь включающим GNOME вообще, хотя, это, вероятно, не будет иметь большого значения, и это - стычка.

Тем не менее я замечаю этот комментарий здесь при "Выпусках CentOS 6":

Существует также минимальная установка CD, который получит Вас очень маленькая основная установка, к которой можно добавить.

Относительно начальной загрузки к консоли и использования startx, это - просто вопрос установки значения по умолчанию runlevel. CentOS все еще использует стиль SysV init система. Заглянуть /etc/inittab для этой строки:

 id:5:initdefault:

Существуют, вероятно, некоторые комментарии, которые идут с ним. Измените 5 на 3, и Вы больше не будете загружаться прямо в X.

Установка гнома без gdm будет невозможна, но это не означает, что необходимо использовать его. startx повинуется директивам в ~/.Xclients если это существует (это не делает по умолчанию). Попытайтесь создать этот файл и сохранить его в Вашем $HOME как .Xclients:

#!/bin/sh
gnome-session

15
11.02.2014, 03:46
3 ответа

При присоединении уже существующей tmux сессии оболочка не наследовала переменные среды от оболочки входа в систему. Особенно, это не наследует ssh переменные среды агента.

Попробуйте эту фиксацию:

  1. Создайте этот сценарий и поместите его в $HOME/.ssh/saveagent

    #!/bin/sh
    SSHVARS="SSH_CLIENT SSH_TTY SSH_AUTH_SOCK SSH_CONNECTION DISPLAY"
    
    for var in ${SSHVARS} ; do
      echo "export $var=\"$(eval echo '$'$var)\""
    done 1>$HOME/.ssh/latestagent
    
  2. Добавьте его к своему сценарию запуска оболочки. Например, если Вы используете удар:

    echo '. ~/.ssh/saveagent' >> ~/.bash_login
    
  3. После присоединения tmux, выполненного . $HOME/.ssh/latestagent

См. также, Как я могу сразу запустить скрипт после соединения через SSH? и Присоединение к tmux сессии и выполненный команда

12
27.01.2020, 19:50
  • 1
    Отправьте к .profile, возможно, при попытке быть совместимыми с другими оболочками sh. –  Dereckson 11.02.2014, 03:19
  • 2
    Большой ответ! Несколько проблем я столкнулся: - некоторые переменные среды содержат пробелы, таким образом, строка прежде в последний раз в saveagent сценарий должен быть: echo "export $var=\"$(eval echo '$'$var)\"". b - latestagent со сценарием нужно назвать source вместо sh, так установка переменных будет влиять на оболочку вызова. c - вызов latestagent напишите сценарий автоматически после присоединения tmux, может быть сделан с помощью метода, описанного здесь: unix.stackexchange.com/questions/86925 / … –  Joe 14.10.2014, 13:53
  • 3
    Спасибо @Joe, я изменил свой ответ для включения улучшений. –  GnP 16.10.2014, 06:47

Если Вы не хотите получить исходный код скрипта, содержащего все необходимые Вам переменные в каждом новом shell'е, порождённом теми же самыми сеансами сервера tmux, Вы, вероятно, захотите сказать tmux, чтобы он поместил переменные в сеанс или в глобальное окружение командой set-environment. Например, вот так (для bash):

for var in DISPLAY SSH_AUTH_SOCK ...; do
    tmux setenv "$var" "${!var}"
done

не забудьте добавить флаг -g, если вы хотите, чтобы он был и в других сессиях, а также использовать -t , если вы запускаете его из-за пределов tmux.

0
27.01.2020, 19:50

После прочтения другого ответы здесь, я решил просто скопировать свою пару открытого / закрытого ключей на удаленный сервер, чтобы мне больше не нужно было беспокоиться о пересылке агента.

0
27.01.2020, 19:50

Теги

Похожие вопросы