Omarchy(Arch Linux)でDevContainerを使うときにSSH Forwardingする方法
2025/12/02
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などに次のようにスクリプトを記述しておけば、
- 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/nullfiしかし、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/nullfi# 以下を追加export SSH_AGENT_SOCK=$SSH_AUTH_SOCKこれでSSH Agent転送かつ秘密鍵も追加されるようになりました。