byobuはssh-agentソケットにうまく接続できません。実際には、ssh-agentを介して1つの接続のみを作成できますが、エージェントを使用して別のssh接続を確立しようとしても、機能しません。私はもう試した
setenv SSH_AUTH_SOCK `echo $SSH_AUTH_SOCK`
~/.byobu/profile
しかし、うまくいきませんでした。
ターミナルマルチプレクサー構成レベルでこれを解決しようとする理由がわかりません。 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
この問題の詳細は Bug#664059 で、byobuバージョン3.7以降では解決されています。
基本的に、/var/run/screen/S-$USER/
が存在し、SSHソケットを設定する必要がある時点で書き込み可能になるという誤った仮定があります。そこで、SSHソケットへのシンボリックリンクを$HOME/.byobu/.ssh-agent
に移動しました。
バグレポートがあります #616899 これはあなたの問題に似ています。 byobu v3.1 をダウンロードして手動でインストールすることをお勧めします。
私はssh-agent byobu
すべての環境変数が簡単に渡されます。