Бёбу и СШ-агент

Byobu не может подключиться к сокету ssh-agent. на самом деле я могу установить только одно соединение через ssh-agent, но если я попытаюсь установить другое ssh-соединение с помощью агента, это не сработает. я пробовал

setenv SSH_AUTH_SOCK `echo $SSH_AUTH_SOCK`

в ~/.byobu/profile но это не сработало.

4 ответа

Я не уверен, почему люди пытаются решить эту проблему на уровне конфигурации терминала мультиплексора. Это не место для этого, если вы не хотите делать это снова, потому что вы переключились на tmux, screen и т. Д.

Каждый раз, когда вы открываете другое окно, ваша оболочка запускается и читает свои файлы конфигурации.

Получение этого из вашего файла конфигурации оболочки решает проблему для любой оболочки, которую я использую:

#!/bin/bash
SSH_AGENT_TYPE="ssh"
SSH_AGENT_INFO="${HOME}/.ssh-agent"

source_agent_info() {
  export SSH_AUTH_SOCK=''
  export SSH_AGENT_PID=''

  if [[ -f ${SSH_AGENT_INFO} ]]; then
    source ${SSH_AGENT_INFO}
  fi
}

agent_running() {
  source_agent_info
  proc_file="/proc/${SSH_AGENT_PID}/cmdline"
  if [[ "${SSH_AGENT_PID}" =~ ^[0-9]+$ ]] && \
     stat "${proc_file}" &> /dev/null && \
     grep ssh-agent "${proc_file}" &> /dev/null; then
    return 0
  else
    return 1
  fi
}

run_ssh_agent() {
  ssh-agent 2>&1 | grep -v echo > "${SSH_AGENT_INFO}"
  source_agent_info
}

if ! agent_running; then
  run_ssh_agent
fi

Эта проблема подробно описана в ошибке #664059 и решена для версий 3.7 и выше.

По сути, существует неверное предположение, что /var/run/screen/S-$USER/ будет существовать и быть доступным для записи в точке, где необходимо установить сокет SSH. Поэтому я переместил символическую ссылку на сокет SSH, чтобы $HOME/.byobu/.ssh-agent,

Есть сообщение об ошибке #616899, которое звучит похоже на вашу проблему. Они предлагают скачать byobu v3.1 и установить его вручную.

Я делал ssh-agent byobu все переменные окружения легко передаются.

Другие вопросы по тегам