wake-up-neo.net

byobu e ssh-agent

byobu non riesce a connettersi bene al socket ssh-agent. in realtà posso fare solo una connessione tramite ssh-agent ma se provo a stabilire un'altra connessione ssh usando l'agent, non funziona. ho provato

setenv SSH_AUTH_SOCK `echo $SSH_AUTH_SOCK`

nel ~/.byobu/profile ma non ha funzionato altrettanto bene.

7
ubik

Non sono sicuro del motivo per cui le persone tentano di risolverlo a livello di configurazione del multiplexer terminale. Non è un posto adatto, a meno che tu non voglia rifarlo perché sei passato a tmux, schermo, ecc.

Ogni volta che si apre un'altra finestra, Shell viene eseguito e legge i suoi file di configurazione.

Sourcing questo dal file di configurazione di Shell risolve il problema per qualsiasi Shell che utilizzo:

#!/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
8
Marcin Kaminski

Questo problema è dettagliato in Bug # 664059 e risolto per byobu versioni 3.7 e successive.

Fondamentalmente, si presume che /var/run/screen/S-$USER/ esisterà e sarà scrivibile nel punto in cui è necessario impostare il socket SSH. Quindi ho spostato il collegamento simbolico nel socket SSH in $HOME/.byobu/.ssh-agent.

2
Dustin Kirkland

C'è una segnalazione di bug # 616899 che sembra simile al tuo problema. Suggeriscono di scaricare byobu v3.1 e installarlo manualmente.

1
qbi

Ho fatto ssh-agent byobu tutte le variabili d'ambiente vengono passate facilmente.

0
Howard Tan