web-dev-qa-db-ja.com

byobuおよびssh-agent

byobuはssh-agentソケットにうまく接続できません。実際には、ssh-agentを介して1つの接続のみを作成できますが、エージェントを使用して別のssh接続を確立しようとしても、機能しません。私はもう試した

setenv SSH_AUTH_SOCK `echo $SSH_AUTH_SOCK`

~/.byobu/profileしかし、うまくいきませんでした。

7
ubik

ターミナルマルチプレクサー構成レベルでこれを解決しようとする理由がわかりません。 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
8
Marcin Kaminski

この問題の詳細は Bug#664059 で、byobuバージョン3.7以降では解決されています。

基本的に、/var/run/screen/S-$USER/が存在し、SSHソケットを設定する必要がある時点で書き込み可能になるという誤った仮定があります。そこで、SSHソケットへのシンボリックリンクを$HOME/.byobu/.ssh-agentに移動しました。

2
Dustin Kirkland

バグレポートがあります #616899 これはあなたの問題に似ています。 byobu v3.1 をダウンロードして手動でインストールすることをお勧めします。

1
qbi

私はssh-agent byobuすべての環境変数が簡単に渡されます。

0
Howard Tan