it-swarm-eu.dev

Byobu und SSH-Agent

byobu kann keine Verbindung zum ssh-agent-Socket herstellen. eigentlich kann ich nur eine verbindung über ssh-agent herstellen, aber wenn ich versuche, eine andere ssh-verbindung über den agent herzustellen, funktioniert dies nicht. ich habe es versucht

setenv SSH_AUTH_SOCK `echo $SSH_AUTH_SOCK`

im ~/.byobu/profile aber es hat nicht so gut funktioniert.

7
ubik

Ich bin nicht sicher, warum die Leute versuchen, dies auf der Konfigurationsebene des Terminal-Multiplexers zu lösen. Das ist kein Ort dafür, es sei denn, Sie möchten es erneut tun müssen, weil Sie zu tmux, screen usw. gewechselt sind.

Jedes Mal, wenn Sie ein anderes Fenster öffnen, wird Ihre Shell ausgeführt und liest ihre Konfigurationsdateien.

Das Beziehen dieser Datei aus Ihrer Shell-Konfigurationsdatei löst das Problem für jede von mir verwendete Shell:

#!/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

Dieses Problem wird in Bug # 664059 beschrieben und für byobu-Versionen 3.7 und höher behoben.

Grundsätzlich besteht die falsche Annahme, dass /var/run/screen/S-$USER/ An dem Punkt existiert und beschreibbar ist, an dem der SSH-Socket gesetzt werden muss. Also habe ich den Symlink zum SSH-Socket auf $HOME/.byobu/.ssh-agent Verschoben.

2
Dustin Kirkland

Es gibt einen Fehlerbericht # 616899 , der Ihrem Problem ähnelt. Sie schlagen vor, byobu v3.1 herunterzuladen und manuell zu installieren.

1
qbi

Ich habe gemacht ssh-agent byobu Alle Umgebungsvariablen werden einfach übergeben.

0
Howard Tan