Omarchy(Arch Linux)でSSH Port Forwardingするときにはまったのでメモ。
DevContainerでKamalを使ってデプロイしているのですが、ホストのSSH Forwardingが必要です。
VSCodeはホストでSSH Agentを立ち上げておけば、SSHエージェントを自動で転送してくれます。
つまりBashであれば~/.bash_profileなどに次のようにスクリプトを記述しておけば、
- ssh agentの起動
- キーの追加
を自動で行ってくれます。
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の値を設定する必要があります。
つまり上記のスクリプトを次のように修正しましょう。
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転送かつ秘密鍵も追加されるようになりました。