Omarchy(Arch Linux)でDevContainerを使うときにSSH Forwardingする方法

Omarchy(Arch Linux)でSSH Port Forwardingするときにはまったのでメモ。

DevContainerでKamalを使ってデプロイしているのですが、ホストのSSH Forwardingが必要です。

VSCodeはホストでSSH Agentを立ち上げておけば、SSHエージェントを自動で転送してくれます。

https://code.visualstudio.com/remote/advancedcontainers/sharing-git-credentials

つまりBashであれば~/.bash_profileなどに次のようにスクリプトを記述しておけば、

を自動で行ってくれます。

Terminal window
if [ -z "$SSH_AUTH_SOCK" ]; then
# Check for a currently running instance of the agent
RUNNING_AGENT="`ps -ax | grep 'ssh-agent -s' | grep -v grep | wc -l | tr -d '[:space:]'`"
if [ "$RUNNING_AGENT" = "0" ]; then
# Launch a new instance of the agent
ssh-agent -s &> $HOME/.ssh/ssh-agent
fi
eval `cat $HOME/.ssh/ssh-agent` > /dev/null
ssh-add 2> /dev/null
fi

しかし、Omarchy(Arch Linux)の場合は、DevContainerでSSH agentを転送してくれるものの、秘密鍵が見つかりませんでした。

Arch Linuxの場合SSH_AGENT_SOCKにSSH_AUTH_SOCKの値を設定する必要があります。

つまり上記のスクリプトを次のように修正しましょう。

Terminal window
if [ -z "$SSH_AUTH_SOCK" ]; then
# Check for a currently running instance of the agent
RUNNING_AGENT="`ps -ax | grep 'ssh-agent -s' | grep -v grep | wc -l | tr -d '[:space:]'`"
if [ "$RUNNING_AGENT" = "0" ]; then
# Launch a new instance of the agent
ssh-agent -s &> $HOME/.ssh/ssh-agent
fi
eval `cat $HOME/.ssh/ssh-agent` > /dev/null
ssh-add 2> /dev/null
fi
# 以下を追加
export SSH_AGENT_SOCK=$SSH_AUTH_SOCK

これでSSH Agent転送かつ秘密鍵も追加されるようになりました。