A ferramenta Claude Code é uma aliada poderosa para desenvolvedores, mas pode apresentar desafios em cenários como o acesso via SSH no macOS. Isso ocorre porque o Keychain do sistema, onde os tokens OAuth são armazenados, fica bloqueado nessas situações.
Felizmente, existe uma solução rápida que permite retomar o uso do Claude Code em segundos, sem interromper suas sessões tmux. Vamos explorar como extrair e injetar o token para que sua produtividade não pare.
Pré-requisitos Essenciais
Antes de prosseguir, certifique-se de que você possui o ambiente adequado. É necessário ter um sistema macOS, pois a solução envolve o Keychain.
A ferramenta Claude Code CLI deve estar instalada na versão 2.1.45 ou superior. Além disso, é fundamental ter acesso SSH ao seu Mac ou estar trabalhando em uma sessão tmux.
Por fim, você já deve ter executado claude setup-token para gerar um token OAuth anteriormente.
O Problema: Keychain Bloqueado via SSH
O Claude Code armazena seus tokens OAuth no Keychain do macOS, especificamente sob o serviço "Claude Code-credentials". Contudo, ao operar via SSH, o Keychain está frequentemente bloqueado, tornando o token inacessível.
Isso resulta em mensagens de erro como Error: Authentication required. Run 'claude auth login'. Tentar executar claude auth login abriria um navegador, o que é inviável em uma sessão SSH.
$ echo "test" | claude -p
Error: Authentication required. Run 'claude auth login'A Solução: Variável de Ambiente
O Claude Code tem uma prioridade para a variável de ambiente CLAUDE_CODE_OAUTH_TOKEN. Ao extrair o token do Keychain e configurá-lo como uma variável de ambiente, você habilita o acesso via SSH ou em sessões tmux.
Esta abordagem permite que a ferramenta funcione corretamente mesmo quando o Keychain não está acessível diretamente. Assim, você mantém sua produtividade sem interrupções.
Passo 1: Extraindo o Token do Keychain
Em um terminal local do Mac (não via SSH), execute o seguinte comando:
security find-generic-password -s 'Claude Code-credentials' -wA saída será um objeto JSON contendo o token. Um exemplo de saída é:
{"accessToken":"sk-ant-oat01-qCV5O13G...bcGbVQAA","refreshToken":"...","expiresAt":"2027-02-18T07:00:00.000Z"}Copie todo o output JSON. Ele será essencial para as próximas etapas.
Passo 2: Configurando a Variável de Ambiente
Se você estiver conectado via SSH, precisará definir a variável de ambiente com o JSON copiado. Use o comando export:
export CLAUDE_CODE_OAUTH_TOKEN='{"accessToken":"sk-ant-oat01-qCV5O13G...bcGbVQAA","refreshToken":"...","expiresAt":"2027-02-18T07:00:00.000Z"}'Lembre-se de substituir a string do token pelo JSON que você copiou. Isso garante que o Claude Code encontre as credenciais corretas.
Passo 3: Injetando em Sessão Tmux (Opcional)
Se o Claude Code estiver rodando dentro de uma sessão tmux, você precisará atualizar o ambiente tmux. Use o comando tmux set-environment para injetar o token:
tmux set-environment -t mobileapp-factory CLAUDE_CODE_OAUTH_TOKEN '{"accessToken":"sk-ant-oat01-qCV5O13G...bcGbVQAA","refreshToken":"...","expiresAt":"2027-02-18T07:00:00.000Z"}'Em seguida, carregue a variável de ambiente dentro da sessão tmux:
export CLAUDE_CODE_OAUTH_TOKEN=$(tmux show-environment -t mobileapp-factory CLAUDE_CODE_OAUTH_TOKEN | cut -d= -f2-)Essas etapas são cruciais para que a ferramenta reconheça o token dentro das suas sessões tmux.
Passo 4: Verificando o Acesso
Após seguir os passos, execute um comando simples do Claude Code para verificar se o acesso foi restaurado. Se tudo estiver correto, você não receberá mais os erros de autenticação.
Esse método garante que você possa utilizar o Claude Code de forma contínua e eficiente, mesmo em ambientes desafiadores como o SSH. Continue acompanhando o Brasil Vibe Coding para mais dicas e truques de programação e IA!