byobu ne peut pas bien se connecter au socket ssh-agent. En fait, je ne peux établir qu'une seule connexion via ssh-agent, mais si j'essaie d'établir une autre connexion ssh à l'aide de l'agent, cela ne fonctionne pas. J'ai essayé
setenv SSH_AUTH_SOCK `echo $SSH_AUTH_SOCK`
dans ~/.byobu/profile
mais cela ne fonctionna pas aussi bien.
Je ne sais pas pourquoi les gens tentent de résoudre ce problème au niveau de la configuration du multiplexeur de terminaux. Ce n'est pas un endroit pour ça, à moins que vous ne souhaitiez le refaire parce que vous êtes passé à tmux, screen, etc.
Chaque fois que vous ouvrez une autre fenêtre, votre shell est exécuté et lit ses fichiers de configuration.
La recherche de ceci à partir de votre fichier de configuration de shell résout le problème de tout shell que j'utilise:
#!/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
Ce problème est détaillé dans bogue n ° 664059 , et résolu pour les versions de byobu 3.7 et supérieures.
Fondamentalement, il existe une hypothèse incorrecte selon laquelle /var/run/screen/S-$USER/
existera et sera accessible en écriture au moment où le socket SSH doit être défini. J'ai donc déplacé le lien symbolique vers le socket SSH vers $HOME/.byobu/.ssh-agent
.
Il y a un rapport de bogue # 616899 qui semble similaire à votre problème. Ils suggèrent de télécharger byobu v3.1 et de l'installer manuellement.
Je fais ssh-agent byobu
toutes les variables d'environnement sont passées facilement.