207* Clique em **Walk through in diff** para abrir a visualização de diff e percorrer as descobertas uma de cada vez. Uma descoberta no diff atual aparece em sua linha, onde você pode clicar em **Fix this one** ou descartá-la.207* Clique em **Walk through in diff** para abrir a visualização de diff e percorrer as descobertas uma de cada vez. Uma descoberta no diff atual aparece em sua linha, onde você pode clicar em **Fix this one** ou descartá-la.
208* Clique em **Apply fixes** para pedir a Claude que corrija as descobertas que ainda estão em aberto.208* Clique em **Apply fixes** para pedir a Claude que corrija as descobertas que ainda estão em aberto.
209 209
210Em qualquer sessão, você também pode pedir a Claude na caixa de prompt que corrija o que a revisão encontrou. Para saber o que `/code-review` procura e os argumentos que aceita, veja [Revisar um diff localmente](/docs/pt/code-review#review-a-diff-locally).210Em qualquer sessão, você também pode pedir a Claude na caixa de prompt que corrija o que a revisão encontrou. Para saber o que `/code-review` procura e os argumentos que aceita, veja [Revisar localmente com `/code-review`](/docs/pt/code-review-local).
211 211
212<h3 id="monitor-pull-request-status">212<h3 id="monitor-pull-request-status">
213 Monitorar status de pull request213 Monitorar status de pull request
785</Tabs>785</Tabs>
786 786
787<h2 id="environment-configuration">787<h2 id="environment-configuration">
788 Configuração de ambiente788 Configuração do ambiente
789</h2>789</h2>
790 790
791O ambiente que você escolhe ao [iniciar uma sessão](#start-a-session) determina onde Claude é executado e como você se conecta:791O ambiente que você escolhe ao [iniciar uma sessão](#start-a-session) determina onde Claude é executado e como você se conecta:
792 792
793* **Local**: é executado em sua máquina com acesso direto aos seus arquivos793* **Local**: é executado na sua máquina com acesso direto aos seus arquivos
794* **Cloud**: é executado na infraestrutura gerenciada pela Anthropic por padrão. Sessões continuam mesmo se você fechar o aplicativo.794* **Nuvem**: é executado por padrão em infraestrutura gerenciada pela Anthropic. As sessões continuam mesmo que você feche o aplicativo.
795* **SSH**: é executado em uma máquina remota à qual você se conecta via SSH, como seus próprios servidores, VMs em nuvem ou dev containers. Uma tarefa em execução pode [continuar enquanto o Desktop está desconectado](#keep-a-task-running-while-desktop-is-disconnected), mas, com uma conta Claude, ela pode parar quando o login dela expirar.795* **SSH**: é executado em uma máquina remota à qual você se conecta via SSH, como seus próprios servidores, VMs na nuvem ou dev containers. Uma tarefa em execução pode [continuar enquanto o Desktop está desconectado](#keep-a-task-running-while-desktop-is-disconnected), mas com uma conta Claude ela pode parar quando o login dela expirar.
796* **WSL** (Windows): é executado dentro de uma [distribuição WSL 2](/docs/pt/desktop-wsl) em sua máquina, usando sua cadeia de ferramentas Linux e caminhos nativos796* **WSL** (Windows): é executado dentro de uma [distribuição WSL 2](/docs/pt/desktop-wsl) na sua máquina, usando o conjunto de ferramentas Linux dela e caminhos nativos
797 797
798<h3 id="local-sessions">798<h3 id="local-sessions">
799 Local sessions799 Sessões locais
800</h3>800</h3>
801 801
802O aplicativo desktop nem sempre herda seu ambiente de shell completo. No macOS, quando você inicia o aplicativo do Dock ou Finder, ele lê seu perfil de shell, como `~/.zshrc` ou `~/.bashrc`, para fornecer ao Claude Code o `PATH` e um conjunto fixo de variáveis do Claude Code, mas não outras variáveis que você exporta lá. No Windows, o aplicativo herda variáveis de ambiente de usuário e sistema mas não lê perfis PowerShell.802O aplicativo desktop nem sempre herda todo o ambiente do seu shell. No macOS, quando você inicia o aplicativo pelo Dock ou pelo Finder, ele lê o perfil do seu shell, como `~/.zshrc` ou `~/.bashrc`, para fornecer ao Claude Code o `PATH` e um conjunto fixo de variáveis do Claude Code, mas não outras variáveis que você exporta ali. No Windows, o aplicativo herda as variáveis de ambiente do usuário e do sistema, mas não lê perfis do PowerShell.
803 803
804Para definir variáveis de ambiente para sessões locais e servidores de desenvolvimento em qualquer plataforma, abra o menu suspenso de ambiente na caixa de prompt, passe o mouse sobre **Local** e clique no ícone de engrenagem para abrir o editor de ambiente local. Variáveis que você salva aqui são armazenadas criptografadas em sua máquina e se aplicam a cada sessão local e servidor de visualização que você inicia. Você também pode adicionar variáveis à chave `env` em seu arquivo `~/.claude/settings.json`, embora essas alcancem apenas sessões Claude e não servidores de desenvolvimento. Veja [variáveis de ambiente](/docs/pt/env-vars) para a lista completa de variáveis suportadas.804Para definir variáveis de ambiente para sessões locais e servidores de desenvolvimento em qualquer plataforma, abra o menu suspenso de ambiente na caixa de prompt, passe o mouse sobre **Local** e clique no ícone de engrenagem para abrir o editor de ambiente local. As variáveis que você salva aqui são armazenadas criptografadas na sua máquina e se aplicam a todas as sessões locais e servidores de pré-visualização que você iniciar. Você também pode adicionar variáveis à chave `env` no seu arquivo `~/.claude/settings.json`, embora elas cheguem apenas às sessões do Claude e não aos servidores de desenvolvimento. Consulte [variáveis de ambiente](/docs/pt/env-vars) para a lista completa de variáveis suportadas.
805 805
806O [pensamento estendido](/docs/pt/model-config#extended-thinking) está ativado por padrão, o que melhora o desempenho em tarefas de raciocínio complexo mas usa tokens adicionais. Na API Anthropic, defina `MAX_THINKING_TOKENS` para `0` no editor de ambiente local para desativar o pensamento; isso não tem efeito em Opus 5.5, Sonnet 5.5, Haiku 5.5 ou nos modelos Fable, que sempre usam pensamento estendido. Com o pensamento desativado na API Anthropic, Claude Code envia esforço `high` em vez de um nível superior para modelos que ele sabe que [não aceitam essa combinação](/docs/pt/errors#effort-isnt-available-with-thinking-turned-off), como Opus 5.806O [pensamento estendido](/docs/pt/model-config#extended-thinking) é ativado por padrão, o que melhora o desempenho em tarefas de raciocínio complexo, mas usa tokens adicionais. Na API da Anthropic, defina `MAX_THINKING_TOKENS` como `0` no editor de ambiente local para desativar o pensamento; isso não tem efeito no Opus 5.5, Sonnet 5.5, Haiku 5.5 ou nos modelos Fable, que sempre usam pensamento estendido. Com o pensamento desativado na API da Anthropic, o Claude Code envia o esforço `high` em vez de um nível mais alto para modelos que ele sabe que [não aceitam essa combinação](/docs/pt/errors#effort-isnt-available-with-thinking-turned-off), como o Opus 5.
807 807
808Em modelos com [adaptive reasoning](/docs/pt/model-config#adjust-effort-level), Claude Code ignora o número em si em um valor positivo de `MAX_THINKING_TOKENS`, porque o adaptive reasoning controla a profundidade do pensamento. Em Opus 4.6 e Sonnet 4.6, defina `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` para `1` para usar um orçamento de pensamento fixo; modelos Fable, Sonnet 5 e posterior, Haiku 5.5, e Opus 4.7 e posterior sempre usam adaptive reasoning e não têm modo de orçamento fixo.808Em modelos com [raciocínio adaptativo](/docs/pt/model-config#adjust-effort-level), o Claude Code ignora o próprio número em um valor positivo de `MAX_THINKING_TOKENS`, porque o raciocínio adaptativo controla a profundidade do pensamento. No Opus 4.6 e no Sonnet 4.6, defina `CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING` como `1` para usar um orçamento fixo de pensamento; os modelos Fable, o Sonnet 5 e posteriores, o Haiku 5.5 e o Opus 4.7 e posteriores sempre usam raciocínio adaptativo e não têm modo de orçamento fixo.
809 809
810<h4 id="local-sessions-on-managed-devices">810<h4 id="local-sessions-on-managed-devices">
811 Local sessions on managed devices811 Sessões locais em dispositivos gerenciados
812</h4>812</h4>
813 813
814Seu administrador pode desativar sessões locais com a [configuração gerenciada `disableDesktopLocalSessions`](#managed-settings). Quando tiverem feito isso, **Local** permanece no menu suspenso de ambiente mas fica acinzentado e não pode ser selecionado, com uma dica de ferramenta dizendo que sua organização o desativou, e no Windows a entrada [WSL](/docs/pt/desktop-wsl), cuja disponibilidade em dispositivos gerenciados é [governada separadamente](/docs/pt/admin-setup#wsl-sessions-in-claude-code-desktop), fica acinzentada da mesma forma. Novas sessões usam como padrão a primeira conexão SSH se uma estiver configurada, e o Desktop mostra uma mensagem de que sessões locais não estão disponíveis neste dispositivo se você tentar continuar uma existente. Escolha um ambiente [SSH](#ssh-sessions) ou [cloud](#cloud-sessions) em vez disso, ou entre em contato com sua equipe de TI.814Seu administrador pode desativar as sessões locais com a [configuração gerenciada `disableDesktopLocalSessions`](#managed-settings). Quando isso acontece, **Local** permanece no menu suspenso de ambiente, mas fica esmaecido e não pode ser selecionado, com uma dica informando que sua organização o desativou, e no Windows a entrada [WSL](/docs/pt/desktop-wsl), cuja disponibilidade em dispositivos gerenciados é [controlada separadamente](/docs/pt/admin-setup#wsl-sessions-in-claude-code-desktop), fica esmaecida da mesma forma. Novas sessões usam por padrão a primeira conexão SSH, se houver uma configurada, e o Desktop mostra uma mensagem informando que sessões locais não estão disponíveis neste dispositivo se você tentar continuar uma existente. Escolha um ambiente [SSH](#ssh-sessions) ou [na nuvem](#cloud-sessions) em vez disso, ou entre em contato com sua equipe de TI.
815 815
816<h3 id="cloud-sessions">816<h3 id="cloud-sessions">
817 Cloud sessions817 Sessões na nuvem
818</h3>818</h3>
819 819
820Sessões em nuvem continuam em segundo plano mesmo se você fechar o aplicativo. O uso conta para seus [limites do plano de assinatura](/docs/pt/costs) sem cobranças de computação separadas.820As sessões na nuvem continuam em segundo plano mesmo que você feche o aplicativo. O uso conta para os [limites do seu plano de assinatura](/docs/pt/costs), sem cobranças de computação separadas.
821 821
822Você pode criar ambientes em nuvem personalizados com diferentes níveis de acesso de rede e variáveis de ambiente. Para gerenciá-los, abra o menu suspenso de ambiente na caixa de prompt e selecione **Cloud**:822Você pode criar ambientes de nuvem personalizados com diferentes níveis de acesso à rede e variáveis de ambiente. Para gerenciá-los, abra o menu suspenso de ambiente na caixa de prompt e selecione **Cloud**:
823 823
824* **Add an environment**: selecione **Add cloud environment**824* **Adicionar um ambiente**: selecione **Add cloud environment**
825* **Edit or archive one of your own environments**: passe o mouse sobre ele e clique no ícone de engrenagem825* **Editar ou arquivar um dos seus próprios ambientes**: passe o mouse sobre ele e clique no ícone de engrenagem
826 826
827Veja [Configure cloud environments](/docs/pt/cloud-environments) para detalhes sobre configuração de acesso de rede e variáveis de ambiente.827Consulte [Configurar ambientes de nuvem](/docs/pt/cloud-environments) para detalhes sobre como configurar o acesso à rede e as variáveis de ambiente.
828 828
829<h3 id="ssh-sessions">829<h3 id="ssh-sessions">
830 Sessões SSH830 Sessões SSH
831</h3>831</h3>
832 832
833Sessões SSH permitem que você execute Claude Code em uma máquina remota enquanto usa o aplicativo desktop como sua interface. Isso é útil para trabalhar com bases de código que vivem em VMs em nuvem, dev containers ou servidores com hardware ou dependências específicas.833As sessões SSH permitem que você execute o Claude Code em uma máquina remota enquanto usa o aplicativo desktop como sua interface. Isso é útil para trabalhar com bases de código que ficam em VMs na nuvem, dev containers ou servidores com hardware ou dependências específicos.
834 834
835<Note>835<Note>
836 Se você usa o Desktop com um [provedor de terceiros](/docs/pt/third-party-integrations), as sessões SSH precisam de sua própria configuração. Veja [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).836 Se você usa o Desktop com um [provedor terceirizado](/docs/pt/third-party-integrations), as sessões SSH precisam de sua própria configuração. Consulte [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).
837</Note>837</Note>
838 838
839Para adicionar uma conexão SSH, abra o menu suspenso de ambiente na caixa de prompt antes de iniciar uma sessão, depois selecione **SSH > Add SSH connection…** e preencha os detalhes da conexão:839Para adicionar uma conexão SSH, abra o menu suspenso de ambiente na caixa de prompt antes de iniciar uma sessão, depois selecione **SSH > Add SSH connection…** e preencha os detalhes da conexão:
840 840
841* **Name**: um rótulo amigável para esta conexão841* **Name**: um rótulo amigável para esta conexão
842* **SSH host**: `user@hostname` ou um host definido em `~/.ssh/config`842* **SSH host**: `user@hostname` ou um host definido em `~/.ssh/config`
843* **SSH port**: padrão é 22 se deixado vazio, ou usa a porta do seu SSH config843* **SSH port**: usa 22 por padrão se deixado vazio, ou usa a porta da sua configuração SSH
844* **SSH key (optional)**: caminho para sua chave privada, como `~/.ssh/id_ed25519`. Deixe vazio para usar seu SSH config ou agente SSH.844* **SSH key (optional)**: caminho para sua chave privada, como `~/.ssh/id_ed25519`. Deixe vazio para usar sua configuração SSH ou seu agente SSH.
845* **Worktree folder**: uma pasta na máquina remota, como `~/worktrees`, onde novas sessões criam seus worktrees. Deixe vazio para usar o [padrão da máquina remota](#choose-where-ssh-session-worktrees-go).845* **Worktree folder**: uma pasta na máquina remota, como `~/worktrees`, onde novas sessões criam seus worktrees. Deixe vazio para usar o [padrão da máquina remota](#choose-where-ssh-session-worktrees-go).
846 846
847Uma vez adicionada, a conexão aparece em **SSH** no menu suspenso de ambiente. Selecione-a para iniciar uma sessão naquela máquina. Claude é executado na máquina remota com acesso aos seus arquivos e ferramentas.847Depois de adicionada, a conexão aparece em **SSH** no menu suspenso de ambiente. Selecione-a para iniciar uma sessão nessa máquina. Claude é executado na máquina remota com acesso aos arquivos e ferramentas dela.
848 848
849A máquina remota pode executar Linux, macOS ou [Windows](#windows-remote-machines). O Desktop instala Claude Code na máquina remota automaticamente na primeira vez que você se conecta. Uma vez conectado, sessões SSH suportam modos de permissão, conectores, plugins e servidores MCP.849A máquina remota pode executar Linux, macOS ou [Windows](#windows-remote-machines). O Desktop instala o Claude Code na máquina remota automaticamente na primeira vez que você se conecta. Depois de conectadas, as sessões SSH suportam modos de permissão, conectores, plugins e servidores MCP.
850 850
851<h4 id="remote-machine-requirements-for-ssh-sessions">851<h4 id="remote-machine-requirements-for-ssh-sessions">
852 Requisitos da máquina remota para sessões SSH852 Requisitos da máquina remota para sessões SSH
853</h4>853</h4>
854 854
855Uma máquina remota Linux ou macOS precisa de um processador compatível, um servidor SSH com SFTP, uma pasta de instalação que não esteja montada com `noexec`, um shell funcional e acesso à rede. Verifique cada requisito antes de se conectar, ou quando uma conexão falhar depois que você fizer login:855Uma máquina remota Linux ou macOS precisa de um processador suportado, um servidor SSH com SFTP, uma pasta de instalação que não esteja montada com `noexec`, um shell funcional e acesso à rede. Verifique cada requisito antes de se conectar, ou quando uma conexão falhar depois que você fizer login:
856 856
857* **Sistema**: um processador x86\_64 ou arm64. A máquina também precisa atender aos [requisitos de sistema](/docs/pt/setup#system-requirements) do Claude Code. No Linux, o Claude Code precisa de glibc 2.17 ou posterior, ou de musl. Para ver qual deles a máquina tem, execute `ldd --version` nela. Em uma distribuição baseada em musl, como Alpine Linux, instale também os [pacotes de que o Claude Code precisa](/docs/pt/setup#alpine-linux-and-musl-based-distributions).857* **Sistema**: um processador x86\_64 ou arm64. A máquina também precisa atender aos [requisitos de sistema](/docs/pt/setup#system-requirements) do Claude Code. No Linux, o Claude Code precisa de glibc 2.17 ou posterior, ou musl. Para ver qual a máquina tem, execute `ldd --version` nela. Em uma distribuição baseada em musl, como o Alpine Linux, instale também os [pacotes de que o Claude Code precisa](/docs/pt/setup#alpine-linux-and-musl-based-distributions).
858* **SFTP**: o servidor SSH precisa oferecer o subsistema SFTP, que uma linha `Subsystem sftp` em seu `sshd_config` ativa. Para verificar, conecte-se ao mesmo host e porta com `sftp` em um terminal no seu computador. Um servidor funcional mostra o prompt `sftp>`.858* **SFTP**: o servidor SSH precisa oferecer o subsistema SFTP, que uma linha `Subsystem sftp` no `sshd_config` dele ativa. Para verificar, conecte-se ao mesmo host e porta com `sftp` em um terminal no seu computador. Um servidor funcionando mostra o prompt `sftp>`.
859* **Sessões por conexão**: o Desktop no macOS e no Linux abre várias sessões em uma única conexão SSH. Se o `sshd_config` do servidor definir `MaxSessions 1`, aumente o valor, por exemplo para o padrão do OpenSSH, que é 10.859* **Sessões por conexão**: o Desktop no macOS e no Linux abre várias sessões em uma única conexão SSH. Se o `sshd_config` do servidor definir `MaxSessions 1`, aumente o valor, por exemplo para o padrão do OpenSSH, que é 10.
860* **Pasta de instalação**: o Desktop instala um programa auxiliar e o Claude Code em `~/.claude/remote/` no seu diretório pessoal. Ele os executa a partir dali, então essa pasta não pode estar em um sistema de arquivos montado com `noexec`. Reserve cerca de 1 GB de espaço em disco no diretório pessoal de cada usuário que se conecta. Para saber o que essa pasta contém, veja [Arquivos e processos na máquina remota](#files-and-processes-on-the-remote-machine).860* **Pasta de instalação**: o Desktop instala um programa auxiliar e o Claude Code em `~/.claude/remote/` no seu diretório pessoal. Ele os executa a partir dali, portanto essa pasta não pode estar em um sistema de arquivos montado com `noexec`. Reserve cerca de 1 GB de espaço em disco no diretório pessoal de cada usuário que se conecta. Para saber o que essa pasta contém, consulte [Arquivos e processos na máquina remota](#files-and-processes-on-the-remote-machine).
861* **Shell**: o shell definido para sua conta na máquina remota precisa executar comandos enviados via SSH, como Bash, Zsh e `sh` fazem861* **Shell**: o shell definido para sua conta na máquina remota precisa executar comandos enviados via SSH, como fazem o Bash, o Zsh e o `sh`
862* **Rede**: o Claude Code é executado na máquina remota e faz suas requisições de rede a partir dela, então a máquina precisa do [acesso à rede que o Claude Code requer](/docs/pt/network-config#network-access-requirements). Se a máquina não conseguir baixar o Claude Code, o Desktop o baixa no seu computador e o envia. As outras requisições do Claude Code continuam saindo da máquina remota.862* **Rede**: o Claude Code é executado na máquina remota e faz suas requisições de rede a partir dali, portanto a máquina precisa do [acesso à rede que o Claude Code exige](/docs/pt/network-config#network-access-requirements). Se a máquina não conseguir baixar o Claude Code, o Desktop o baixa no seu computador e o envia. As outras requisições do Claude Code ainda saem da máquina remota. Em uma máquina remota Linux, se essas requisições precisarem de um proxy, [defina-o para sessões SSH](#set-a-proxy-or-a-ca-certificate-for-ssh-sessions).
863
864<h4 id="set-a-proxy-or-a-ca-certificate-for-ssh-sessions">
865 Definir um proxy ou um certificado de CA para sessões SSH
866</h4>
867
868Se uma máquina remota Linux acessa a internet por meio de um proxy ou precisa de um certificado de CA, adicione as [variáveis de proxy e de CA](/docs/pt/network-config) em `env` no `~/.claude/settings.json` dessa máquina. Adicione-as mesmo que você já as exporte em `~/.profile`, `~/.bash_profile`, `~/.zprofile` ou `~/.zshrc` nessa máquina.
869
870Uma sessão SSH não as obtém desses arquivos, mesmo quando o `claude` em um terminal nessa máquina as obtém. A sessão pode então travar, ou mostrar **The connection from … to the API failed** ou **Authentication failed**, e fazer login novamente não ajuda.
871
872<Steps>
873 <Step title="Adicione as variáveis">
874 Para o arquivo de CA, use [`NODE_EXTRA_CA_CERTS`](/docs/pt/network-config#custom-ca-certificates), porque o Claude Code não confia em uma CA de `SSL_CERT_FILE` em `~/.claude/settings.json`. Este exemplo define um proxy e um arquivo de CA:
875
876 ```json ~/.claude/settings.json theme={null}
877 {
878 "env": {
879 "HTTPS_PROXY": "http://proxy.example.com:8080",
880 "NODE_EXTRA_CA_CERTS": "/etc/ssl/certs/example-ca.pem"
881 }
882 }
883 ```
884 </Step>
885
886 <Step title="Envie sua mensagem novamente">
887 Envie sua mensagem novamente, porque uma variável que você adiciona ou altera nesse arquivo entra em vigor em segundos. Inicie uma nova sessão se ainda falhar.
888 </Step>
889</Steps>
890
891<h5 id="find-a-proxy-or-ca-variable-set-elsewhere-on-the-remote-machine">
892 Encontrar uma variável de proxy ou de CA definida em outro lugar na máquina remota
893</h5>
894
895Verifique se a máquina remota Linux define a variável de proxy ou de CA em outro lugar, porque as sessões usam esse valor e [ignoram o de qualquer arquivo de configurações](/docs/pt/settings-reference#how-env-values-interact-with-your-shell):
896
897<Steps>
898 <Step title="Liste as variáveis que a máquina remota define">
899 Em um terminal no seu computador, execute `ssh devbox env`, com o seu próprio host.
900 </Step>
901
902 <Step title="Altere a variável onde ela é definida">
903 Se a lista tiver a variável, altere-a no arquivo que a define, como `~/.zshenv`, `/etc/environment` ou `~/.bashrc` na máquina remota.
904 </Step>
905
906 <Step title="Forneça o novo valor às sessões">
907 Reinicie a máquina remota, ou saia do Desktop e encerre os processos do auxiliar, como nas duas primeiras etapas para [remover o auxiliar](#files-and-processes-on-the-remote-machine). Faça isso quando nenhuma tarefa estiver em execução, porque qualquer uma das opções interrompe o trabalho de Claude.
908 </Step>
909</Steps>
863 910
864<h4 id="use-your-ssh-configuration-on-macos-and-linux">911<h4 id="use-your-ssh-configuration-on-macos-and-linux">
865 Usar sua configuração SSH no macOS e no Linux912 Usar sua configuração SSH no macOS e no Linux
866</h4>913</h4>
867 914
868No macOS e no Linux, o Desktop se conecta executando o cliente OpenSSH no seu computador, então ele usa o seu `~/.ssh/config`. Conectar-se pelo cliente OpenSSH requer Claude Desktop v1.37937.0 ou posterior. Insira um nome de `Host` desse arquivo no campo **SSH host** para usar as configurações da entrada correspondente, como `HostName`, `User`, `IdentityFile`, `CertificateFile`, `ProxyJump` e `ProxyCommand`.915No macOS e no Linux, o Desktop se conecta executando o cliente OpenSSH no seu computador, portanto ele usa seu `~/.ssh/config`. Conectar-se por meio do cliente OpenSSH requer o Claude Desktop v1.37937.0 ou posterior. Insira um nome de `Host` desse arquivo no campo **SSH host** para usar as configurações da entrada correspondente, como `HostName`, `User`, `IdentityFile`, `CertificateFile`, `ProxyJump` e `ProxyCommand`.
869 916
870Antes de adicionar a conexão, verifique o cliente e a entrada em um terminal no seu computador:917Antes de adicionar a conexão, verifique o cliente e a entrada em um terminal no seu computador:
871 918
872* **Versão do cliente**: execute `ssh -V`. O cliente precisa ser OpenSSH 7.6 ou posterior.919* **Versão do cliente**: execute `ssh -V`. O cliente precisa ser o OpenSSH 7.6 ou posterior.
873* **Entrada**: execute `ssh` com o nome do `Host`, como `ssh devbox`. Se isso falhar, corrija a entrada primeiro.920* **Entrada**: execute `ssh` com o nome do `Host`, como `ssh devbox`. Se isso falhar, corrija a entrada primeiro.
874 921
875Você pode deixar os campos **SSH port** e **SSH key (optional)** vazios. Se preencher um deles, o Desktop o usa junto com a entrada:922Você pode deixar os campos **SSH port** e **SSH key (optional)** vazios. Se você preencher um deles, o Desktop o usa junto com a entrada:
876 923
877* **SSH port**: um valor aqui sobrescreve o `Port` da entrada924* **SSH port**: um valor aqui sobrescreve o `Port` da entrada
878* **SSH key (optional)**: o Desktop oferece o arquivo de chave que você escolher, além do `IdentityFile` da entrada e das chaves no seu agente SSH925* **SSH key (optional)**: o Desktop oferece o arquivo de chave que você escolher, além do `IdentityFile` da entrada e das chaves no seu agente SSH
892 939
893Insira `devbox` no campo **SSH host**.940Insira `devbox` no campo **SSH host**.
894 941
942<h5 id="reach-a-container-on-a-remote-machine">
943 Acessar um contêiner em uma máquina remota
944</h5>
945
946Para executar uma sessão dentro de um contêiner que não publica nenhuma porta SSH, acesse-o com um `ProxyCommand`, porque o Desktop não executa o `RemoteCommand` da entrada à qual você se conecta. Se sua entrada usa `RemoteCommand` para entrar no contêiner, a sessão é executada na máquina em que a entrada faz login, não no contêiner.
947
948<Steps>
949 <Step title="Adicione a entrada">
950 Adicione a entrada a seguir ao final do seu `~/.ssh/config`, ou logo acima da sua primeira entrada `Host *`, se você tiver uma. Substitua o contêiner Docker `devbox`, seu usuário `dev` e a máquina `build.example.com` pelos seus. O comando da entrada inicia um servidor SSH dentro do contêiner para cada conexão:
951
952 ```text ~/.ssh/config theme={null}
953 Host devbox-container
954 User dev
955 ProxyCommand ssh build.example.com docker exec -i devbox /usr/sbin/sshd -i
956 ```
957 </Step>
958
959 <Step title="Prepare o contêiner">
960 * Instale o servidor OpenSSH, com uma chave de host que permaneça a mesma quando você recompilar a imagem ou recriar o contêiner
961 * Dê à conta indicada em `User` uma forma de fazer login, como um arquivo `authorized_keys`
962 * Verifique se o contêiner atende aos [requisitos da máquina remota](#remote-machine-requirements-for-ssh-sessions)
963 </Step>
964
965 <Step title="Verifique a allowlist">
966 Se seu administrador [restringe os hosts SSH](#restrict-which-ssh-hosts-users-can-connect-to), execute `ssh -G devbox-container` em um terminal no seu computador. Peça a ele que permita o `hostname` que o comando imprime, aqui `devbox-container`, em `sshHostAllowlist`. Ao permitir esse nome, ele permite tudo aquilo a que o `ProxyCommand` da sua entrada se conecta.
967 </Step>
968
969 <Step title="Teste a entrada e depois conecte-se">
970 Execute `ssh devbox-container` em um terminal no seu computador. Corrija o que ele relatar e execute-o novamente até que ele abra um shell no contêiner sem pedir nada a você:
971
972 * **Se o `ssh` pedir uma senha, frase secreta ou código**: mude para um login que funcione sem prompt, como uma chave mantida pelo seu agente SSH
973 * **Se o `ssh` relatar `Cannot execute command-line and remote command.` ou `Bad packet length`**: remova `RemoteCommand` e `RequestTTY` da sua entrada para `build.example.com`. Depois disso, `ssh build.example.com` em um terminal no seu computador abre um shell nessa máquina, não no contêiner.
974 * **Se o `ssh` relatar `Connection closed by UNKNOWN port 65535`**: execute `ssh build.example.com docker exec devbox /usr/sbin/sshd -t` no mesmo terminal.
975 * Se ele imprimir `Missing privilege separation directory: /run/sshd`, crie essa pasta no contêiner.
976 * Se ele imprimir `no hostkeys available` e o contêiner tiver chaves de host, adicione `-u root` após `exec` neste comando e na entrada.
977
978 Em seguida, insira `devbox-container` no campo **SSH host**.
979 </Step>
980</Steps>
981
895<h5 id="use-variables-from-your-shell-in-a-proxycommand">982<h5 id="use-variables-from-your-shell-in-a-proxycommand">
896 Usar variáveis do seu shell em um `ProxyCommand`983 Usar variáveis do seu shell em um `ProxyCommand`
897</h5>984</h5>
898 985
899Para usar uma variável de ambiente própria em um comando `ProxyCommand` ou `Match exec`, exporte-a em um arquivo de inicialização do shell, como `~/.zshrc`, depois feche e reabra o Desktop. Quando o Desktop é iniciado, ele lê o que seu shell de login exporta e mantém esses valores até você fechá-lo.986Para usar uma variável de ambiente sua em um comando `ProxyCommand` ou `Match exec`, exporte-a em um arquivo de inicialização do shell, como `~/.zshrc`, depois saia do Desktop e abra-o novamente. Quando o Desktop é iniciado, ele lê o que seu shell de login exporta e mantém esses valores até você sair.
987
988Isso requer o Claude Desktop v2.37337.0 ou posterior e um comando `env` que aceite `-0`, o que você pode verificar executando `env -0` em um terminal no seu computador.
989
990<Note>
991 Se o seu shell define credenciais temporárias da AWS, [forneça um perfil à AWS CLI](#use-aws-credentials-in-a-proxycommand) em vez de exportar variáveis `AWS_*`.
992</Note>
993
994<a id="use-aws-credentials-in-a-proxycommand" />
900 995
901Isso requer Claude Desktop v2.37337.0 ou posterior e um comando `env` que aceite `-0`, o que você pode verificar executando `env -0` em um terminal no seu computador.996<h5 id="use-aws-credentials-in-a-proxycommand">
997 Usar credenciais da AWS em um `ProxyCommand`
998</h5>
999
1000Se você define credenciais temporárias da AWS em um arquivo de inicialização do shell, um `ProxyCommand` que executa a AWS CLI pode se conectar em um terminal e falhar no Desktop. Quando seu shell exporta `AWS_SESSION_TOKEN`, `AWS_SECURITY_TOKEN` ou `AWS_CREDENTIAL_EXPIRATION`, o `ssh` e seu `ProxyCommand` no Desktop não recebem as credenciais da AWS do shell, nem `AWS_REGION` ou `AWS_PROFILE`.
1001
1002Se a AWS CLI não tiver outra fonte para uma região ou para credenciais, ela falha com `You must specify a region` ou `Unable to locate credentials`. Para se conectar pelo Desktop, forneça à AWS CLI um perfil que ela lê de `~/.aws/config`:
1003
1004<Steps>
1005 <Step title="Adicione um perfil com uma região e uma fonte de credenciais">
1006 Este exemplo adiciona um perfil chamado `corp` que obtém suas credenciais de um programa auxiliar:
1007
1008 ```ini ~/.aws/config theme={null}
1009 [profile corp]
1010 region = us-east-1
1011 credential_process = /full/path/to/your-credential-helper
1012 ```
1013
1014 * **`region`**: informe a região da AWS das máquinas às quais você se conecta
1015 * **`credential_process`**: informe o caminho completo de um programa que imprime credenciais no [formato JSON que a AWS documenta](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sourcing-external.html). Escolha um programa que não precise de nenhuma entrada sua, porque a AWS CLI o executa a cada conexão, incluindo reconexões enquanto você está ausente.
1016 * **IAM Identity Center**: adicione as [configurações do IAM Identity Center](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html) do perfil no lugar de `credential_process`. Execute `aws sso login --profile corp` em um terminal antes de se conectar e novamente quando esse login expirar.
1017 </Step>
1018
1019 <Step title="Indique o perfil no ProxyCommand">
1020 Este exemplo adiciona `--profile` ao [comando que a AWS documenta para o Session Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/session-manager-getting-started-enable-ssh-connections.html):
1021
1022 ```text ~/.ssh/config theme={null}
1023 Host i-*
1024 ProxyCommand sh -c "aws ssm start-session --profile corp --target %h --document-name AWS-StartSSHSession --parameters 'portNumber=%p'"
1025 ```
1026 </Step>
1027
1028 <Step title="Conecte-se novamente">
1029 Execute `ssh` com o host em um terminal para confirmar que a entrada ainda se conecta ali, depois conecte-se pelo Desktop.
1030 </Step>
1031</Steps>
902 1032
903<h5 id="raise-the-ssh-connection-timeout">1033<h5 id="raise-the-ssh-connection-timeout">
904 Aumentar o timeout de conexão SSH1034 Aumentar o timeout da conexão SSH
905</h5>1035</h5>
906 1036
907Se sua configuração SSH não definir nenhum `ConnectTimeout` para o host, o Desktop dá ao `ssh` 30 segundos para se conectar. Por meio de um jump host ou de um `ProxyCommand`, esse tempo inclui o tempo que a rota leva para se conectar. Se sua rota precisar de mais tempo, adicione um valor maior à entrada:1037Se sua configuração SSH não define nenhum `ConnectTimeout` para o host, o Desktop dá ao `ssh` 30 segundos para se conectar. Por meio de um jump host ou de um `ProxyCommand`, esse tempo inclui o tempo que a rota leva para se conectar. Se sua rota precisar de mais tempo, adicione um valor maior à entrada:
908 1038
909```text ~/.ssh/config theme={null}1039```text ~/.ssh/config theme={null}
910Host devbox1040Host devbox
914 ConnectTimeout 1201044 ConnectTimeout 120
915```1045```
916 1046
917O `ssh` usa o primeiro valor que encontra para um host, então mantenha a entrada acima de qualquer entrada `Host *` que defina `ConnectTimeout`. Para confirmar, execute `ssh -G devbox` em um terminal no seu computador. A saída inclui `connecttimeout 120`. Depois de alterar o valor, feche e reabra o Desktop.1047O `ssh` usa o primeiro valor que encontra para um host, portanto mantenha a entrada acima de qualquer entrada `Host *` que defina `ConnectTimeout`. Para confirmar, execute `ssh -G devbox` em um terminal no seu computador. A saída inclui `connecttimeout 120`. Depois de alterar o valor, saia do Desktop e abra-o novamente.
1048
1049Se a própria máquina remota aguarda uma aprovação no seu telefone, aprove em até 45 segundos, qualquer que seja o `ConnectTimeout` que você definir. Você não pode aumentar esse limite, porque o próprio Desktop define `ServerAliveInterval` e `ServerAliveCountMax`, e o `ssh` então encerra um login em que a máquina remota não envia nada por esse tempo. Se, em vez disso, um jump host ou um `ProxyCommand` aguardar por você, aumente o `ConnectTimeout` na entrada da máquina remota para cobrir esse tempo.
1050
1051<h5 id="fix-a-match-host-block-that-only-desktop-applies">
1052 Corrigir um bloco `Match host` que apenas o Desktop aplica
1053</h5>
1054
1055Se o Desktop usa uma configuração que `ssh devbox` em um terminal não usa, procure um bloco `Match host` acima da linha `HostName` da entrada. Em um terminal, o `ssh` lê um bloco ali antes da linha `HostName`, portanto compara o bloco com `devbox`. O Desktop fornece ao `ssh` o valor de `HostName` na linha de comando, portanto o `ssh` compara o bloco com esse valor.
1056
1057Para verificar, execute `ssh -G` em um terminal no seu computador com os valores de `HostName` e `User` da entrada na linha de comando, como o Desktop faz:
1058
1059```bash theme={null}
1060ssh -G -o HostName=devbox.internal.example.com -l alice devbox
1061```
1062
1063Compare a saída com a de `ssh -G devbox`. Se as configurações do bloco, como `proxycommand`, aparecerem apenas na primeira saída, o bloco só tem efeito no Desktop. Para que o Desktop também o ignore, adicione `!originalhost devbox` à linha `Match` dele:
1064
1065```text ~/.ssh/config theme={null}
1066Match host *.internal.example.com !originalhost devbox
1067```
1068
1069Para confirmar, execute o primeiro comando novamente. As configurações do bloco não aparecem mais na saída.
918 1070
919<h5 id="forwarding-settings-that-desktop-leaves-off">1071<h5 id="forwarding-settings-that-desktop-leaves-off">
920 Configurações de encaminhamento que o Desktop deixa desativadas1072 Configurações de encaminhamento que o Desktop deixa desativadas
925* **Para acessar uma porta na máquina remota**: [encaminhe-a você mesmo](#reach-a-port-on-the-remote-machine)1077* **Para acessar uma porta na máquina remota**: [encaminhe-a você mesmo](#reach-a-port-on-the-remote-machine)
926* **Para usar suas próprias chaves a partir da máquina remota**: configure uma credencial na própria máquina remota, por exemplo para `git push`1078* **Para usar suas próprias chaves a partir da máquina remota**: configure uma credencial na própria máquina remota, por exemplo para `git push`
927 1079
928Para impedir que o Desktop encaminhe seu agente SSH ou uma porta, execute `ssh -G devbox` em um terminal no seu computador. Depois execute-o novamente como o Desktop pode executá-lo, com os valores de `hostname` e `user` que ele imprime, como em `ssh -G -o HostName=devbox.internal.example.com -l alice devbox`. A segunda saída pode mostrar configurações de um bloco `Match` que a primeira ignora.1080Para impedir que o Desktop encaminhe seu agente SSH ou uma porta, execute `ssh -G devbox` em um terminal no seu computador. Em seguida, execute-o novamente como o Desktop pode executá-lo, com os valores de `hostname` e `user` que ele imprime, como em `ssh -G -o HostName=devbox.internal.example.com -l alice devbox`. A segunda saída pode mostrar configurações de um bloco `Match` que a primeira ignora.
929 1081
930Procure em ambas as saídas uma linha `forwardagent` que diga qualquer coisa diferente de `no`, e linhas que comecem com `localforward`, `remoteforward` ou `dynamicforward`. Se encontrar uma, remova essa opção de configuração da sua configuração SSH. Faça o mesmo para um host que seu `ProxyCommand` acessa com `ssh`.1082Procure em ambas as saídas uma linha `forwardagent` que diga qualquer coisa diferente de `no`, e linhas que comecem com `localforward`, `remoteforward` ou `dynamicforward`. Se encontrar alguma, remova essa configuração da sua configuração SSH. Faça o mesmo para um host que seu `ProxyCommand` acessa com `ssh`.
931 1083
932<h4 id="reach-a-port-on-the-remote-machine">1084<h4 id="reach-a-port-on-the-remote-machine">
933 Acessar uma porta na máquina remota1085 Acessar uma porta na máquina remota
934</h4>1086</h4>
935 1087
936Para abrir um servidor executado na máquina remota, como um servidor de desenvolvimento na porta 3000, encaminhe a porta você mesmo. Em um terminal no seu computador, execute `ssh` com `-L` e o host ao qual você se conecta, como `devbox`:1088Para abrir um servidor que é executado na máquina remota, como um servidor de desenvolvimento na porta 3000, encaminhe a porta você mesmo. Em um terminal no seu computador, execute `ssh` com `-L` e o host ao qual você se conecta, como `devbox`:
937 1089
938```bash theme={null}1090```bash theme={null}
939ssh -N -L 3000:localhost:3000 devbox1091ssh -N -L 3000:localhost:3000 devbox
945 Máquinas remotas Windows1097 Máquinas remotas Windows
946</h4>1098</h4>
947 1099
948Uma máquina remota Windows requer Claude Desktop v2.31226.0 ou posterior.1100Uma máquina remota Windows requer o Claude Desktop v2.31226.0 ou posterior.
949 1101
950Use o OpenSSH Server da Microsoft. A máquina pode ser x64 ou ARM64. O shell que o servidor SSH inicia pode ser `cmd.exe`, Windows PowerShell 5.1 ou Git Bash.1102Use o OpenSSH Server da Microsoft. A máquina pode ser x64 ou ARM64. O shell que o servidor SSH inicia pode ser `cmd.exe`, Windows PowerShell 5.1 ou Git Bash.
951 1103
952Máquinas remotas Windows são menos testadas que as Linux. Experimente seu próprio trabalho ali antes de depender dela.1104Máquinas remotas Windows são menos testadas do que as Linux. Experimente seu próprio trabalho ali antes de depender dele.
953 1105
954Espere estes limites, entre outros, em uma máquina remota Windows:1106Espere estes limites, entre outros, em uma máquina remota Windows:
955 1107
956* **Terminal**: o [terminal](#run-commands-in-the-terminal) não abre em uma sessão cuja pasta é um caminho Windows, como `C:/projects/app`1108* **Terminal**: o [terminal](#run-commands-in-the-terminal) não abre em uma sessão cuja pasta é um caminho do Windows, como `C:/projects/app`
957* **Sandbox**: o Claude Code é executado ali no Windows nativo, onde executa comandos sem sandbox. Veja [onde o sandbox é executado](/docs/pt/sandboxing).1109* **Sandbox**: o Claude Code é executado ali no Windows nativo, onde executa comandos sem sandbox. Consulte [onde o sandbox é executado](/docs/pt/sandboxing).
958* **Plugins**: o Desktop não copia um plugin que contenha um nome de arquivo ou pasta que o Windows não consegue armazenar, como um nome com `:`. A sessão lista os plugins que o Desktop deixou de fora.1110* **Plugins**: o Desktop não copia um plugin que contenha um nome de arquivo ou pasta que o Windows não consegue armazenar, como um nome com `:`. A sessão lista os plugins que o Desktop deixou de fora.
959* **Servidores MCP**: em algumas máquinas remotas Windows, as chamadas do Claude a servidores MCP de `claude_desktop_config.json` passam pelo Desktop, então Claude não pode chamar as ferramentas deles [enquanto o Desktop está desconectado](#limits-while-desktop-is-disconnected). Antes do Claude Desktop v2.37337.0, isso vale para todas as máquinas remotas Windows.1111* **Servidores MCP**: em algumas máquinas remotas Windows, as chamadas de Claude para servidores MCP de `claude_desktop_config.json` passam pelo Desktop, portanto Claude não consegue chamar as ferramentas deles [enquanto o Desktop está desconectado](#limits-while-desktop-is-disconnected). Antes do Claude Desktop v2.37337.0, isso vale para todas as máquinas remotas Windows.
960* **Worktrees**: os worktrees ficam em `<project-root>/.claude/worktrees/`. Se você [escolher outra pasta](#choose-where-ssh-session-worktrees-go), o Desktop a ignora.1112* **Worktrees**: os worktrees ficam em `<project-root>/.claude/worktrees/`. Se você [escolher outra pasta](#choose-where-ssh-session-worktrees-go), o Desktop a ignora.
961* **Mensagens anteriores**: se o shell do servidor SSH for `cmd.exe` ou Windows PowerShell, talvez você precise se conectar antes de ver as mensagens anteriores de uma sessão1113* **Mensagens anteriores**: se o shell do servidor SSH for `cmd.exe` ou Windows PowerShell, talvez você precise se conectar antes de ver as mensagens anteriores de uma sessão
962* **Forks**: se o shell do servidor SSH for `cmd.exe` ou Windows PowerShell, você só pode fazer fork de uma sessão na primeira mensagem dela1114* **Forks**: se o shell do servidor SSH for `cmd.exe` ou Windows PowerShell, você só pode fazer fork de uma sessão na primeira mensagem dela
963* **Execução enquanto desconectado**: uma tarefa [continua em execução enquanto o Desktop está desconectado](#keep-a-task-running-while-desktop-is-disconnected) somente se o servidor SSH permitir que um programa sobreviva à conexão que o iniciou. Para descobrir, [teste a máquina remota](#prepare-a-long-task).1115* **Execução enquanto desconectado**: uma tarefa [continua em execução enquanto o Desktop está desconectado](#keep-a-task-running-while-desktop-is-disconnected) somente se o servidor SSH permitir que um programa sobreviva à conexão que o iniciou. Para descobrir, [teste a máquina remota](#prepare-a-long-task).
964* **Processos remanescentes**: depois que uma sessão terminar, verifique na máquina se há programas que o Claude Code iniciou, porque eles podem continuar em execução. O [programa auxiliar em segundo plano](#keep-a-task-running-while-desktop-is-disconnected) que o Desktop instala não para sozinho ali.1116* **Processos remanescentes**: depois que uma sessão termina, verifique na máquina se há programas que o Claude Code iniciou, porque eles podem continuar em execução. O [auxiliar em segundo plano](#keep-a-task-running-while-desktop-is-disconnected) que o Desktop instala não para sozinho ali.
965 1117
966<h4 id="keep-a-task-running-while-desktop-is-disconnected">1118<h4 id="keep-a-task-running-while-desktop-is-disconnected">
967 Manter uma tarefa em execução enquanto o Desktop está desconectado1119 Manter uma tarefa em execução enquanto o Desktop está desconectado
968</h4>1120</h4>
969 1121
970Se seu computador entrar em suspensão, você perder a rede ou fechar o Desktop, a tarefa continua até terminar, precisar de você ou atingir um dos [limites](#limits-while-desktop-is-disconnected). Fechar a tampa conta como suspensão. Uma reinicialização do Desktop ou do seu computador, inclusive para uma atualização, conta como fechar o aplicativo.1122Se seu computador entrar em suspensão, você perder a rede ou sair do Desktop, a tarefa continua até terminar, precisar de você ou atingir um dos [limites](#limits-while-desktop-is-disconnected). Fechar a tampa conta como suspensão. Uma reinicialização do Desktop ou do seu computador, inclusive para uma atualização, conta como saída.
971 1123
972O Claude Code é executado como um processo na máquina remota, sob um programa auxiliar em segundo plano que o Desktop instala ali, então ele não precisa da sua conexão SSH para continuar em execução. O comportamento desta seção requer Claude Desktop v2.31226.0 ou posterior.1124O Claude Code é executado como um processo na máquina remota, sob um auxiliar em segundo plano que o Desktop instala ali, portanto não precisa da sua conexão SSH para continuar em execução. O comportamento descrito nesta seção requer o Claude Desktop v2.31226.0 ou posterior.
973 1125
974<Warning>1126<Warning>
975 Se você fizer login no Desktop com uma conta Claude, não conte com uma tarefa sendo executada durante a noite. O Desktop renova esse login para a tarefa apenas enquanto o Desktop está em execução e conectado, então o login da tarefa pode expirar depois que você se desconecta, e a tarefa então para. O tempo restante quando você se desconecta varia, e pode ser de apenas alguns minutos.1127 Se você faz login no Desktop com uma conta Claude, não conte com uma tarefa sendo executada durante a noite. O Desktop renova esse login para a tarefa apenas enquanto está em execução e conectado, portanto o login da tarefa pode expirar depois que você se desconecta, e a tarefa então para. O tempo restante quando você se desconecta varia e pode ser de apenas alguns minutos.
976 1128
977 O trabalho feito até então permanece na máquina remota, e você pode continuar com uma mensagem quando voltar.1129 O trabalho feito até então permanece na máquina remota, e você pode continuar com uma mensagem quando voltar.
978 1130
979 Se a tarefa precisar ser executada durante a noite:1131 Se a tarefa precisar ser executada durante a noite:
980 1132
981 * [Mantenha seu computador acordado](/docs/pt/desktop-scheduled-tasks#how-scheduled-tasks-run) e online, com a tampa aberta e o Desktop em execução1133 * [Mantenha seu computador ativo](/docs/pt/desktop-scheduled-tasks#how-scheduled-tasks-run) e online, com a tampa aberta e o Desktop em execução
982 * Use um login que funcione sem prompt, como uma chave mantida pelo seu agente SSH, para a máquina remota e para qualquer jump host no caminho. O Desktop pode então se reconectar sozinho após uma queda.1134 * Use um login que funcione sem prompt, como uma chave mantida pelo seu agente SSH, para a máquina remota e para qualquer jump host no caminho. O Desktop pode então se reconectar sozinho após uma queda.
983 1135
984 Para uma tarefa que precisa ser executada enquanto seu computador está em suspensão ou desligado, inicie uma [sessão na nuvem](#run-long-running-tasks-in-the-cloud) em vez disso.1136 Para uma tarefa que precisa ser executada enquanto seu computador está em suspensão ou desligado, inicie uma [sessão na nuvem](#cloud-sessions) em vez disso.
985</Warning>1137</Warning>
986 1138
987* **Após suspensão ou perda de rede**: você recupera a tarefa em execução se o processo [ainda estiver em execução](#limits-while-desktop-is-disconnected) e o Desktop conseguir fazer login sem prompt. Se não conseguir, [envie uma mensagem](#reconnect-after-sleep-or-a-network-loss).1139* **Após suspensão ou perda de rede**: você recupera a tarefa em execução se o processo [ainda estiver em execução](#limits-while-desktop-is-disconnected) e o Desktop puder fazer login sem prompt. Se não puder, [envie uma mensagem](#reconnect-after-sleep-or-a-network-loss).
988* **Após fechar o aplicativo, com o Desktop no macOS ou Linux e uma conta Claude**: você recupera a tarefa em execução se o Desktop conseguir [se reconectar ao processo](#reopen-a-session-after-you-quit-desktop). Se não conseguir, a tarefa para. Se ela continuar parada, envie uma mensagem.1140* **Após uma saída, com o Desktop no macOS ou no Linux e uma conta Claude**: você recupera a tarefa em execução se o Desktop puder [reconectar-se ao processo](#reopen-a-session-after-you-quit-desktop). Se não puder, a tarefa para. Se ela continuar parada, envie uma mensagem.
989* **Após fechar o aplicativo, com o Desktop no Windows ou um [provedor de terceiros](/docs/pt/third-party-integrations)**: você perde a tarefa em execução, porque o Desktop encerra o processo quando a sessão é aberta. Envie uma mensagem para continuar.1141* **Após uma saída, com o Desktop no Windows ou com um [provedor terceirizado](/docs/pt/third-party-integrations)**: você perde a tarefa em execução, porque o Desktop encerra o processo quando a sessão é aberta. Envie uma mensagem para continuar.
990 1142
991Quando você voltar e a tarefa não estiver concluída, verifique se há aviso de que o Desktop não consegue se reconectar, um erro de autenticação ou uma solicitação pendente:1143Quando você voltar e a tarefa não estiver concluída, verifique se há um aviso de que o Desktop não consegue se reconectar, um erro de autenticação ou uma solicitação pendente:
992 1144
993* **O Desktop não consegue se reconectar**: a sessão diz o motivo, e uma notificação também pode dizer. O Desktop pode [precisar que você faça login](#reconnect-after-sleep-or-a-network-loss).1145* **O Desktop não consegue se reconectar**: a sessão informa o motivo, e uma notificação também pode informá-lo. O Desktop pode [precisar que você faça login](#reconnect-after-sleep-or-a-network-loss).
994* **Erro de autenticação**: o [token de login ou a credencial](#limits-while-desktop-is-disconnected) pode ter expirado. Com uma conta Claude, envie uma mensagem para continuar. Com um provedor de terceiros, veja [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1146* **Erro de autenticação**: o [token de login ou a credencial](#limits-while-desktop-is-disconnected) pode ter expirado. Com uma conta Claude, envie uma mensagem para continuar. Com um provedor terceirizado, consulte [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).
995* **Solicitação pendente**: [responda a ela](#handle-requests-that-arrive-while-you-are-away)1147* **Solicitação pendente**: [responda a ela](#handle-requests-that-arrive-while-you-are-away)
996* **Nenhum desses**: envie uma mensagem para continuar1148* **Nenhum desses casos**: envie uma mensagem para continuar
997 1149
998<a id="prepare-a-long-task" />1150<a id="prepare-a-long-task" />
999 1151
1001 Preparar uma tarefa longa1153 Preparar uma tarefa longa
1002</h5>1154</h5>
1003 1155
1004* **Atualize primeiro**: atualize o Desktop antes de iniciar uma tarefa longa. No macOS e no Windows, o Desktop pode reiniciar sozinho para instalar uma atualização que baixou. Essa reinicialização espera enquanto Claude está trabalhando em uma tarefa SSH. No macOS com uma conta Claude, por padrão a reinicialização pode acontecer mesmo assim depois que a atualização tiver esperado 72 horas.1156* **Atualize primeiro**: atualize o Desktop antes de iniciar uma tarefa longa. No macOS e no Windows, o Desktop pode reiniciar sozinho para instalar uma atualização que baixou. Essa reinicialização aguarda enquanto Claude está trabalhando em uma tarefa SSH. No macOS com uma conta Claude, por padrão a reinicialização pode acontecer mesmo assim depois que a atualização tiver aguardado 72 horas.
1005* **Não feche o Desktop**: se o Desktop for executado no Windows ou usar um provedor de terceiros, deixe-o aberto enquanto a tarefa longa é executada. Depois de ser fechado, ele [encerra a tarefa em execução](#reopen-a-session-after-you-quit-desktop) quando a sessão é aberta. Deixá-lo aberto não protege uma solicitação que [espera por você](#handle-requests-that-arrive-while-you-are-away).1157* **Não saia do Desktop**: se o Desktop é executado no Windows ou usa um provedor terceirizado, deixe-o aberto enquanto a tarefa longa é executada. Após uma saída, ele [encerra a tarefa em execução](#reopen-a-session-after-you-quit-desktop) quando a sessão é aberta. Deixá-lo aberto não protege uma solicitação que [aguarda por você](#handle-requests-that-arrive-while-you-are-away).
1006* **Reduza as solicitações**: escolha um modo de permissão, regras ou hooks que [façam a tarefa esperar por você com menos frequência](#handle-requests-that-arrive-while-you-are-away)1158* **Reduza as solicitações**: escolha um modo de permissão, regras ou hooks que [façam a tarefa aguardar por você com menos frequência](#handle-requests-that-arrive-while-you-are-away)
1007* **Verifique o jump host**: se seu jump host pedir um login, por exemplo uma notificação push para um telefone, mude para um login que funcione sem prompt. Caso contrário, o Desktop pode enviar outra notificação push cada vez que tentar se reconectar.1159* **Verifique o jump host**: se seu jump host pede um login, por exemplo um push para um telefone, mude para um login que funcione sem prompt. Caso contrário, o Desktop pode enviar outro push cada vez que tentar se reconectar.
1008* **Teste a máquina remota**: inicie uma tarefa curta, feche o Desktop enquanto a tarefa ainda está em execução e abra a sessão novamente bem depois de a tarefa já dever ter terminado. Se a tarefa não estiver concluída e a sessão não mostrar nenhum erro de autenticação, verifique na máquina remota [o que pode encerrar uma tarefa](#limits-while-desktop-is-disconnected).1160* **Teste a máquina remota**: inicie uma tarefa curta, saia do Desktop enquanto a tarefa ainda está em execução e abra a sessão novamente bem depois de a tarefa dever ter terminado. Se a tarefa não estiver concluída e a sessão não mostrar nenhum erro de autenticação, verifique na máquina remota [o que pode encerrar uma tarefa](#limits-while-desktop-is-disconnected).
1009* **Mantenha comandos fora do terminal do Desktop**: se a máquina remota [faz logout de terminais ociosos](#limits-while-desktop-is-disconnected), execute seus próprios comandos a partir de um login SSH fora do Desktop1161* **Mantenha comandos fora do terminal do Desktop**: se a máquina remota [desconecta terminais ociosos](#limits-while-desktop-is-disconnected), execute seus próprios comandos a partir de um login SSH fora do Desktop
1010 1162
1011<a id="limits-while-desktop-is-disconnected" />1163<a id="limits-while-desktop-is-disconnected" />
1012 1164
1014 Limites enquanto o Desktop está desconectado1166 Limites enquanto o Desktop está desconectado
1015</h5>1167</h5>
1016 1168
1017Uma tarefa que você deixa em execução pode terminar quando o login dela expira, quando a máquina remota a encerra ou quando o programa auxiliar para ou é substituído:1169Uma tarefa que você deixa em execução pode terminar quando o login dela expira, quando a máquina remota a encerra ou quando o auxiliar para ou é substituído:
1018 1170
1019* **Token de login ou credencial**: com uma conta Claude, a tarefa para com um erro de autenticação quando o token expira. Com um provedor de terceiros, o mesmo vale para uma credencial que expira, como uma de single sign-on ou de um credential helper. Veja [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions). Com uma conta Claude, [mantenha o Desktop em execução e conectado](#keep-a-task-running-while-desktop-is-disconnected) para que ele possa renovar o login.1171* **Token de login ou credencial**: com uma conta Claude, a tarefa para com um erro de autenticação quando o token expira. Com um provedor terceirizado, o mesmo vale para uma credencial que expira, como uma de single sign-on ou de um auxiliar de credenciais. Consulte [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions). Com uma conta Claude, [mantenha o Desktop em execução e conectado](#keep-a-task-running-while-desktop-is-disconnected) para que ele possa renovar o login.
1020* **A máquina remota**: se a máquina remota reiniciar, ou encerrar seus processos quando sua conexão SSH for fechada, a tarefa em execução termina. Nada a inicia novamente enquanto o Desktop está desconectado. Máquinas Linux em que o `KillUserProcesses` do systemd-logind é `yes` e se aplica ao seu usuário encerram seus processos dessa forma. Para manter uma tarefa em execução ali, peça ao administrador que isente seu usuário, por exemplo com `KillExcludeUsers`.1172* **A máquina remota**: se a máquina remota reiniciar, ou encerrar seus processos quando sua conexão SSH for fechada, a tarefa em execução termina. Nada a inicia novamente enquanto o Desktop está desconectado. Máquinas Linux em que o `KillUserProcesses` do systemd-logind é `yes` e se aplica ao seu usuário encerram seus processos dessa forma. Para manter uma tarefa em execução ali, peça ao administrador que isente seu usuário, por exemplo com `KillExcludeUsers`.
1021* **Terminais ociosos**: algumas máquinas remotas Linux fazem logout de um terminal em que ninguém digita por um tempo definido (`StopIdleSessionSec` do systemd-logind). Com o Desktop no macOS ou Linux, o [terminal](#run-commands-in-the-terminal) de uma sessão e os comandos `!` compartilham a conexão SSH do Desktop por padrão. Esse logout então encerra a conexão enquanto o Desktop está conectado, e a tarefa em execução pode terminar junto. Fechar o painel do terminal não impede isso, então [mantenha comandos fora desse terminal](#prepare-a-long-task).1173* **Terminais ociosos**: algumas máquinas remotas Linux desconectam um terminal em que ninguém digita por um tempo definido (`StopIdleSessionSec` do systemd-logind). Com o Desktop no macOS ou no Linux, o [terminal](#run-commands-in-the-terminal) de uma sessão e os comandos `!` compartilham por padrão a conexão SSH do Desktop. Essa desconexão então encerra a conexão enquanto o Desktop está conectado, e a tarefa em execução pode terminar junto. Fechar o painel do terminal não impede isso, portanto [mantenha comandos fora desse terminal](#prepare-a-long-task).
1022* **Atualizações do Desktop**: se uma atualização trouxer um novo programa auxiliar, o Desktop substitui o programa auxiliar na máquina remota em uma conexão posterior, o que pode encerrar uma tarefa que ainda está em execução1174* **Atualizações do Desktop**: se uma atualização trouxer um novo auxiliar, o Desktop substitui o auxiliar na máquina remota em uma conexão posterior, o que pode encerrar uma tarefa que ainda está em execução
1023* **Ausências longas**: em uma máquina remota Linux ou macOS, se o Desktop não se conectar por 30 dias, o programa auxiliar para e encerra todos os processos do Claude Code executados sob ele. Conecte-se antes disso.1175* **Ausências longas**: em uma máquina remota Linux ou macOS, se o Desktop não se conectar por 30 dias, o auxiliar para e encerra todos os processos do Claude Code executados sob ele. Conecte-se antes disso.
1024 1176
1025Edições de arquivos e algumas ferramentas podem falhar enquanto o Desktop está desconectado. Se a tarefa precisar delas, mantenha o Desktop conectado:1177Edições de arquivos e algumas ferramentas podem falhar enquanto o Desktop está desconectado. Se a tarefa precisar delas, mantenha o Desktop conectado:
1026 1178
1027* **Worktrees**: em uma sessão que usa um [worktree](#work-in-parallel-with-sessions), o Desktop verifica cada edição de arquivo antes que Claude a faça. Enquanto o Desktop está desconectado, cada edição espera cerca de 30 segundos e então falha. Comandos de shell continuam sendo executados. Em uma máquina remota Linux ou macOS, [as edições podem continuar funcionando](#worktree-edits-while-disconnected). Se não tiver certeza, inicie a sessão sem um worktree.1179* **Worktrees**: em uma sessão que usa um [worktree](#work-in-parallel-with-sessions), o Desktop verifica cada edição de arquivo antes que Claude a faça. Enquanto o Desktop está desconectado, cada edição aguarda cerca de 30 segundos e depois falha. Comandos do shell ainda são executados. Em uma máquina remota Linux ou macOS, [as edições podem continuar funcionando](#worktree-edits-while-disconnected). Se não tiver certeza, inicie a sessão sem um worktree.
1028* **Restrições de pastas**: se sua organização restringe quais pastas as sessões podem usar, o Desktop verifica cada leitura, busca e edição de arquivo, com ou sem worktree. Enquanto o Desktop está desconectado, cada uma espera até 10 minutos e então falha.1180* **Restrições de pastas**: se sua organização restringe quais pastas as sessões podem usar, o Desktop verifica cada leitura, pesquisa e edição de arquivo, com ou sem worktree. Enquanto o Desktop está desconectado, cada uma aguarda até 10 minutos e depois falha.
1029* **Conectores**: [conectores](#connect-external-tools) e outras ferramentas fornecidas pelo Desktop são executados por meio do Desktop, então, enquanto ele está desconectado, cada chamada falha após cerca de 30 segundos1181* **Conectores**: [conectores](#connect-external-tools) e outras ferramentas que o Desktop fornece passam pelo Desktop, portanto, enquanto ele está desconectado, cada chamada falha após cerca de 30 segundos
1030* **Workflows**: o Desktop verifica cada novo [workflow](/docs/pt/workflows) antes que ele comece, então, enquanto o Desktop está desconectado, um novo workflow espera até 10 minutos e então falha1182* **Fluxos de trabalho**: o Desktop verifica cada novo [fluxo de trabalho](/docs/pt/workflows) antes que ele comece, portanto, enquanto o Desktop está desconectado, um novo aguarda até 10 minutos e depois falha
1031* **Servidores MCP**: servidores MCP que o Claude Code inicia na máquina remota não passam pelo Desktop, então Claude ainda pode chamar as ferramentas deles. Os servidores de `claude_desktop_config.json` estão entre eles somente se o Desktop não usar seu [cliente SSH integrado](#worktree-edits-while-disconnected). Caso contrário, e em [algumas máquinas remotas Windows](#windows-remote-machines), Claude não pode chamar as ferramentas deles enquanto o Desktop está desconectado.1183* **Servidores MCP**: servidores MCP que o Claude Code inicia na máquina remota não passam pelo Desktop, portanto Claude ainda pode chamar as ferramentas deles. Servidores de `claude_desktop_config.json` estão entre eles apenas se o Desktop não usar seu [cliente SSH integrado](#worktree-edits-while-disconnected). Caso contrário, e em [algumas máquinas remotas Windows](#windows-remote-machines), Claude não consegue chamar as ferramentas deles enquanto o Desktop está desconectado.
1032 1184
1033<span id="worktree-edits-while-disconnected" />1185<span id="worktree-edits-while-disconnected" />
1034 1186
1035<Accordion title="Quando as edições em um worktree continuam funcionando">1187<Accordion title="Quando as edições em um worktree continuam funcionando">
1036 Em uma máquina remota Linux ou macOS, a verificação não passa pelo Desktop, então as edições dentro do worktree continuam funcionando enquanto o Desktop está desconectado. Antes do Claude Desktop v2.37337.0, isso vale apenas para máquinas remotas Linux.1188 Em uma máquina remota Linux ou macOS, a verificação não passa pelo Desktop, portanto as edições dentro do worktree continuam funcionando enquanto o Desktop está desconectado. Antes do Claude Desktop v2.37337.0, isso vale apenas para uma máquina remota Linux.
1037 1189
1038 As edições ainda falham em alguns casos, incluindo estes:1190 As edições ainda falham em alguns casos, incluindo estes:
1039 1191
1040 * **Cliente SSH integrado**: o Desktop o usa, por exemplo em uma instalação da Microsoft Store, em um computador Windows sem o OpenSSH 9.4 ou posterior da Microsoft, ou por padrão no Windows com um provedor de terceiros1192 * **Cliente SSH integrado**: o Desktop o usa, por exemplo, em uma instalação da Microsoft Store, em um computador Windows sem o OpenSSH 9.4 ou posterior da Microsoft, ou por padrão no Windows com um provedor terceirizado
1041 * **Local do repositório**: o repositório é seu diretório pessoal, uma pasta acima dele ou `~/.claude`1193 * **Localização do repositório**: o repositório é seu diretório pessoal, uma pasta acima dele ou `~/.claude`
1042 * **Caminhos no macOS**: em uma máquina remota macOS, o repositório está em `/Volumes`, ou um nome de pasta no caminho do repositório ou do worktree contém `~` ou um caractere não ASCII1194 * **Caminhos do macOS**: em uma máquina remota macOS, o repositório está em `/Volumes`, ou um nome de pasta no caminho do repositório ou do worktree tem um `~` ou um caractere não ASCII
1043 * **Restrições de pastas**: sua organização restringe quais pastas as sessões podem usar1195 * **Restrições de pastas**: sua organização restringe quais pastas as sessões podem usar
1044 * **Launcher corporativo**: antes do Claude Desktop v2.37337.0, você faz login com uma conta Claude e sua organização inicia o Claude Code na máquina remota por meio de um [launcher corporativo](/docs/pt/corporate-launcher)1196 * **Inicializador corporativo**: antes do Claude Desktop v2.37337.0, você faz login com uma conta Claude e sua organização inicia o Claude Code na máquina remota por meio de um [inicializador corporativo](/docs/pt/corporate-launcher)
1045 1197
1046 Uma sessão sem worktree não tem essa verificação, a menos que sua organização restrinja quais pastas as sessões podem usar.1198 Uma sessão sem worktree não tem essa verificação, a menos que sua organização restrinja quais pastas as sessões podem usar.
1047</Accordion>1199</Accordion>
1052 Lidar com solicitações que chegam enquanto você está ausente1204 Lidar com solicitações que chegam enquanto você está ausente
1053</h5>1205</h5>
1054 1206
1055Se Claude precisar da sua aprovação ou lhe fizer uma pergunta enquanto o Desktop está desconectado, Claude espera na máquina remota. A espera não tem limite de tempo próprio. Quando o Desktop se reconecta ao processo, ele mostra a solicitação. Se o Desktop iniciar um novo processo em vez disso, você perde a solicitação.1207Se Claude precisar da sua aprovação ou lhe fizer uma pergunta enquanto o Desktop está desconectado, Claude aguarda na máquina remota. A espera não tem limite de tempo próprio. Quando o Desktop se reconecta ao processo, ele mostra a solicitação. Se, em vez disso, o Desktop iniciar um novo processo, você perde a solicitação.
1056 1208
1057Enquanto uma tarefa espera por você, o Desktop pode reiniciar sozinho, por exemplo para instalar uma atualização. Se o Desktop for executado no Windows ou usar um provedor de terceiros, você perde a solicitação após essa reinicialização.1209Enquanto uma tarefa aguarda por você, o Desktop pode reiniciar sozinho, por exemplo para instalar uma atualização. Se o Desktop é executado no Windows ou usa um provedor terceirizado, você perde a solicitação após essa reinicialização.
1058 1210
1059Se você perder uma solicitação, envie uma mensagem para continuar.1211Se você perder uma solicitação, envie uma mensagem para continuar.
1060 1212
1061Para reduzir a frequência com que uma tarefa para e espera por você, e para receber notícias dela enquanto está ausente, configure qualquer um destes antes de sair:1213Para reduzir a frequência com que uma tarefa para e aguarda por você, e para receber notícias dela enquanto você está ausente, configure qualquer um destes itens antes de sair:
1062 1214
1063* **Modo auto**: escolha o [modo auto](#choose-a-permission-mode) se [ele estiver disponível para você](#auto-mode-availability). Após bloqueios repetidos, [você é consultado novamente](/docs/pt/permission-modes#when-auto-mode-falls-back).1215* **Modo auto**: escolha o [modo auto](#choose-a-permission-mode) se [ele estiver disponível para você](#auto-mode-availability). Após bloqueios repetidos, [você é consultado novamente](/docs/pt/permission-modes#when-auto-mode-falls-back).
1064* **Regras de permissão allow**: no seu arquivo de configurações de usuário na máquina remota, `~/.claude/settings.json`, adicione [regras allow](/docs/pt/permissions#manage-permissions) para os comandos de que a tarefa precisa. Se sua organização [aceita regras de permissão apenas das configurações gerenciadas](/docs/pt/settings-reference#allowmanagedpermissionrulesonly), peça ao seu administrador que as adicione às [configurações gerenciadas](#managed-settings) que chegam à máquina remota. Para regras allow no `.claude/settings.json` de um projeto, veja [Project allow rules and workspace trust](/docs/pt/permissions#project-allow-rules-and-workspace-trust).1216* **Regras de permissão allow**: no seu arquivo de configurações de usuário na máquina remota, `~/.claude/settings.json`, adicione [regras allow](/docs/pt/permissions#manage-permissions) para os comandos de que a tarefa precisa. Se sua organização [aceita regras de permissão apenas de configurações gerenciadas](/docs/pt/settings-reference#allowmanagedpermissionrulesonly), peça ao seu administrador que as adicione às [configurações gerenciadas](#managed-settings) que chegam à máquina remota. Para regras allow no `.claude/settings.json` de um projeto, consulte [Regras allow do projeto e confiança no workspace](/docs/pt/permissions#project-allow-rules-and-workspace-trust).
1065* **Um hook que responde**: configure um [hook `PermissionRequest`](/docs/pt/hooks#permissionrequest) em `~/.claude/settings.json` na máquina remota para permitir ou negar solicitações no seu lugar1217* **Um hook que responde**: configure um [hook `PermissionRequest`](/docs/pt/hooks#permissionrequest) em `~/.claude/settings.json` na máquina remota para permitir ou negar solicitações em seu lugar
1066* **Um hook que alerta você**: configure um [hook `Notification`](/docs/pt/hooks#notification) com o matcher `permission_prompt` no mesmo arquivo para enviar a si mesmo uma mensagem quando uma solicitação estiver pendente1218* **Um hook que alerta você**: configure um [hook `Notification`](/docs/pt/hooks#notification) com o matcher `permission_prompt` no mesmo arquivo para enviar a si mesmo uma mensagem quando uma solicitação estiver pendente
1067* **Um hook que avisa quando Claude termina**: configure um [hook `Stop`](/docs/pt/hooks#stop) no mesmo arquivo para enviar a si mesmo uma mensagem quando Claude terminar de responder. Ele não é executado quando um erro de API encerra o turno. Para esse caso, configure um [hook `StopFailure`](/docs/pt/hooks#stopfailure).1219* **Um hook que avisa quando Claude termina**: configure um [hook `Stop`](/docs/pt/hooks#stop) no mesmo arquivo para enviar a si mesmo uma mensagem quando Claude terminar de responder. Ele não é executado quando um erro de API encerra o turno. Para esse caso, configure um [hook `StopFailure`](/docs/pt/hooks#stopfailure).
1068 1220
1069Se sua organização [executa apenas hooks gerenciados](/docs/pt/settings-reference#allowmanagedhooksonly), peça ao seu administrador que adicione o hook às [configurações gerenciadas](#managed-settings) que chegam à máquina remota.1221Se sua organização [executa apenas hooks gerenciados](/docs/pt/settings-reference#allowmanagedhooksonly), peça ao seu administrador que adicione o hook às [configurações gerenciadas](#managed-settings) que chegam à máquina remota.
1070 1222
1071O Claude Code não aprova automaticamente [algumas ações](/docs/pt/permission-modes#actions-no-mode-auto-approves) em nenhum modo de permissão, incluindo Bypass permissions. Dependendo do modo de permissão, o Claude Code nega essa ação ou pergunta a você, e a tarefa então espera pela sua resposta.1223O Claude Code não aprova automaticamente [algumas ações](/docs/pt/permission-modes#actions-no-mode-auto-approves) em nenhum modo de permissão, incluindo Bypass permissions. Dependendo do modo de permissão, o Claude Code nega essa ação ou pergunta a você, e a tarefa então aguarda sua resposta.
1072 1224
1073<a id="reconnect-after-sleep-or-a-network-loss" />1225<a id="reconnect-after-sleep-or-a-network-loss" />
1074 1226
1076 Reconectar após suspensão ou perda de rede1228 Reconectar após suspensão ou perda de rede
1077</h5>1229</h5>
1078 1230
1079Se o Desktop não tiver se reconectado quando você voltar, envie uma mensagem na sessão. O Desktop se reconecta sozinho apenas quando consegue fazer login sem prompt, por exemplo com uma chave mantida pelo seu agente SSH.1231Se o Desktop não tiver se reconectado quando você voltar, envie uma mensagem na sessão. O Desktop se reconecta sozinho apenas onde consegue fazer login sem prompt, por exemplo com uma chave mantida pelo seu agente SSH.
1080 1232
1081* **Senha lembrada**: uma senha que você permitiu que o Desktop lembrasse também funciona sem prompt, mas, para uma ausência longa, prefira uma chave mantida pelo seu agente SSH. Se os logins com essa senha forem interrompidos ou travarem, o Desktop pode parar de se reconectar e esperar por você.1233* **Senha memorizada**: uma senha que você permite que o Desktop memorize também funciona sem prompt, mas, para uma ausência longa, prefira uma chave mantida pelo seu agente SSH. Se os logins com essa senha forem interrompidos ou travarem, o Desktop pode parar de se reconectar e aguardar por você.
1082* **Qualquer outro prompt**: se a máquina remota solicitar qualquer outra coisa, como um código de uso único, você pode receber uma notificação no seu computador. Clique na notificação, ou envie uma mensagem na sessão, e o Desktop mostra o prompt.1234* **Qualquer outro prompt**: se a máquina remota solicitar qualquer outra coisa, como um código de uso único, você pode receber uma notificação no seu computador. Clique na notificação, ou envie uma mensagem na sessão, e o Desktop mostra o prompt.
1083 1235
1084<Accordion title="Se um jump host pedir um login, a interrupção for longa, faltar saída ou o processo tiver desaparecido">1236<Accordion title="Se um jump host pede um login, a interrupção é longa, falta saída ou o processo desapareceu">
1085 - **Jump host, as notificações push param enquanto você está ausente**: isso pode acontecer com o Desktop no macOS ou Linux quando ninguém responde ao login de um jump host, por exemplo uma notificação push para um telefone. O Desktop então para de se reconectar enquanto não há ninguém no seu computador. Quando você desbloqueia ou usa o computador, pode receber outra notificação push, porque o Desktop pode tentar novamente. Após três tentativas sem resposta, ele espera até que você tente novamente ou envie uma mensagem.1237 - **Jump host, os pushes param enquanto você está ausente**: isso pode acontecer com o Desktop no macOS ou no Linux quando ninguém responde ao login de um jump host, por exemplo um push para um telefone. O Desktop então para de se reconectar enquanto não há ninguém no seu computador. Quando você desbloqueia ou usa o computador, pode receber outro push, porque o Desktop pode tentar novamente. Após três tentativas sem resposta, ele aguarda até que você tente novamente ou envie uma mensagem.
1086 - **Jump host, as notificações push continuam chegando**: onde o Desktop não consegue perceber que ninguém responde, como no Desktop no Windows, ele continua tentando enquanto tiver um processo ao qual se reconectar, esteja esse processo ainda em execução ou não. Você pode receber outra notificação push a cada tentativa. Para encerrar as tentativas, feche o Desktop, o que [pode custar a tarefa em execução](#reopen-a-session-after-you-quit-desktop).1238 - **Jump host, os pushes continuam chegando**: onde o Desktop não consegue perceber que ninguém responde, como com o Desktop no Windows, ele continua tentando enquanto tiver um processo ao qual se reconectar, esteja esse processo ainda em execução ou não. Você pode receber outro push a cada tentativa. Para encerrar as tentativas, saia do Desktop, o que [pode custar a tarefa em execução](#reopen-a-session-after-you-quit-desktop).
1087 - **Interrupção longa**: o Desktop diminui o ritmo para cerca de uma tentativa a cada cinco minutos. Para se reconectar mais cedo, tente novamente na sessão ou envie uma mensagem, que o Desktop entrega assim que estiver conectado.1239 - **Interrupção longa**: o Desktop reduz o ritmo para cerca de uma tentativa a cada cinco minutos. Para se reconectar mais cedo, tente novamente na sessão ou envie uma mensagem, que o Desktop entrega assim que estiver conectado.
1088 - **Saída ausente**: enquanto o Desktop está desconectado, o programa auxiliar mantém a saída mais recente do Claude Code de cada sessão em um buffer de 16 MiB e descarta a saída mais antiga. Depois que o Desktop se reconecta, a sessão pode mostrar `Loading recent output from <host>…`. Se o Desktop não conseguir carregar toda a saída, você vê a linha `Some output produced while you were disconnected may be missing here.` A linha não significa que a tarefa parou.1240 - **Saída ausente**: enquanto o Desktop está desconectado, o auxiliar mantém a saída mais recente do Claude Code de cada sessão em um buffer de 16 MiB e descarta a saída mais antiga. Depois que o Desktop se reconecta, a sessão pode mostrar `Loading recent output from <host>…`. Se o Desktop não conseguir carregar toda a saída, você verá a linha `Some output produced while you were disconnected may be missing here.` Essa linha não significa que a tarefa parou.
1089 - **Processo desaparecido**: se o processo tiver desaparecido quando o Desktop se reconectar, o Desktop pode iniciar um novo a partir do histórico salvo da conversa e dizer a Claude para continuar a tarefa. O Desktop não continua a tarefa sozinho se o processo continuar terminando, ou se o Desktop usar um provedor de terceiros. Envie uma mensagem para continuar.1241 - **Processo desaparecido**: se o processo tiver desaparecido quando o Desktop se reconectar, o Desktop pode iniciar um novo a partir do histórico salvo da conversa e pedir a Claude que continue a tarefa. O Desktop não continua a tarefa sozinho se o processo continuar terminando, ou se o Desktop usar um provedor terceirizado. Envie uma mensagem para continuar.
1090</Accordion>1242</Accordion>
1091 1243
1092<a id="reopen-a-session-after-you-quit-desktop" />1244<a id="reopen-a-session-after-you-quit-desktop" />
1093 1245
1094<h5 id="reopen-a-session-after-you-quit-desktop">1246<h5 id="reopen-a-session-after-you-quit-desktop">
1095 Reabrir uma sessão depois de fechar o Desktop1247 Reabrir uma sessão depois de sair do Desktop
1096</h5>1248</h5>
1097 1249
1098Depois que você fecha o Desktop, a tarefa continua em execução na máquina remota até terminar, precisar de você ou atingir um dos [limites](#limits-while-desktop-is-disconnected).1250Depois que você sai do Desktop, a tarefa continua em execução na máquina remota até terminar, precisar de você ou atingir um dos [limites](#limits-while-desktop-is-disconnected).
1099 1251
1100* **Desktop no macOS ou Linux, com uma conta Claude**: inicie o Desktop e abra a sessão. Você recupera a tarefa em execução quando o Desktop consegue se reconectar ao processo. Nem sempre ele consegue, por exemplo após algumas atualizações do Desktop ou depois que sua organização altera as configurações gerenciadas.1252* **Desktop no macOS ou no Linux, com uma conta Claude**: inicie o Desktop e abra a sessão. Você recupera a tarefa em execução quando o Desktop consegue se reconectar ao processo. Nem sempre ele consegue, por exemplo após algumas atualizações do Desktop ou depois que sua organização altera as configurações gerenciadas.
1101* **No macOS ou Linux, quando o Desktop não consegue se reconectar**: o Desktop encerra o processo e inicia um novo a partir do histórico salvo da conversa. Sua tarefa em execução para, e você perde qualquer aprovação ou pergunta que estava esperando por você. Após uma atualização, o Desktop pode então dizer a Claude para continuar. Se a tarefa continuar parada, envie uma mensagem.1253* **No macOS ou no Linux, quando o Desktop não consegue se reconectar**: o Desktop encerra o processo e inicia um novo a partir do histórico salvo da conversa. Sua tarefa em execução para, e você perde qualquer aprovação ou pergunta que estava aguardando por você. Após uma atualização, o Desktop pode então pedir a Claude que continue. Se a tarefa continuar parada, envie uma mensagem.
1102* **Desktop no Windows, ou com um provedor de terceiros em qualquer plataforma**: inicie o Desktop novamente somente quando esperar que a tarefa esteja concluída. Você não recupera a tarefa em execução, porque o Desktop nunca se reconecta depois de ser fechado. Ele encerra o processo quando a sessão é aberta, o que pode acontecer quando o Desktop é iniciado. Envie uma mensagem para continuar.1254* **Desktop no Windows, ou com um provedor terceirizado em qualquer plataforma**: inicie o Desktop novamente somente quando esperar que a tarefa esteja concluída. Você não recupera a tarefa em execução, porque o Desktop nunca se reconecta após uma saída. Ele encerra o processo quando a sessão é aberta, o que pode acontecer quando o Desktop é iniciado. Envie uma mensagem para continuar.
1103 1255
1104Para implantações de terceiros, veja [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).1256Para implantações de terceiros, consulte [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions).
1105 1257
1106<Warning>1258<Warning>
1107 Enquanto o processo do Claude Code de uma conversa ainda estiver em execução, não execute [`claude --resume`](/docs/pt/cli-reference#cli-flags) para ela na máquina remota. O Claude Code não impede você, e os dois processos então escrevem na mesma conversa. Se não tiver certeza, adicione `--fork-session`, que continua em uma cópia da conversa, mas os dois processos ainda trabalham nos mesmos arquivos.1259 Enquanto o processo do Claude Code de uma conversa ainda estiver em execução, não execute [`claude --resume`](/docs/pt/cli-reference#cli-flags) para ela na máquina remota. O Claude Code não impede isso, e ambos os processos passam a gravar na mesma conversa. Se não tiver certeza, adicione `--fork-session`, que continua em uma cópia da conversa, mas ambos os processos ainda trabalham nos mesmos arquivos.
1108</Warning>1260</Warning>
1109 1261
1110<h4 id="choose-where-ssh-session-worktrees-go">1262<h4 id="choose-where-ssh-session-worktrees-go">
11172. [`worktree.location`](/docs/pt/settings-reference#worktree-location) em `~/.claude/settings.json` na máquina remota12692. [`worktree.location`](/docs/pt/settings-reference#worktree-location) em `~/.claude/settings.json` na máquina remota
11183. `<project-root>/.claude/worktrees/`, o padrão12703. `<project-root>/.claude/worktrees/`, o padrão
1119 1271
1120Cada projeto recebe sua própria subpasta na pasta que você definir, então com `~/worktrees` o caminho de um worktree é `~/worktrees/<project>-<id>/<worktree-name>`. Se a pasta que você definir estiver dentro do projeto, o Desktop a ignora para esse projeto e usa o padrão. Em uma [máquina remota Windows](#windows-remote-machines), o Desktop sempre usa o padrão.1272Cada projeto recebe sua própria subpasta na pasta que você define, portanto, com `~/worktrees`, o caminho de um worktree é `~/worktrees/<project>-<id>/<worktree-name>`. Se a pasta que você definir estiver dentro do projeto, o Desktop a ignora para esse projeto e usa o padrão. Em uma [máquina remota Windows](#windows-remote-machines), o Desktop sempre usa o padrão.
1121 1273
1122Para definir **Worktree folder** em uma conexão que você adicionou anteriormente ou em uma que sua organização gerencia, passe o mouse sobre ela no menu suspenso de ambiente e clique no ícone de engrenagem.1274Para definir **Worktree folder** em uma conexão que você adicionou anteriormente ou em uma que sua organização gerencia, passe o mouse sobre ela no menu suspenso de ambiente e clique no ícone de engrenagem.
1123 1275
1124O campo requer Claude Desktop v1.44121.0 ou posterior. Se sua organização restringe quais pastas as sessões podem usar, o Desktop oculta o campo e mantém os worktrees dentro do projeto.1276O campo requer o Claude Desktop v1.44121.0 ou posterior. Se sua organização restringe quais pastas as sessões podem usar, o Desktop oculta o campo e mantém os worktrees dentro do projeto.
1125 1277
1126<h4 id="files-and-processes-on-the-remote-machine">1278<h4 id="files-and-processes-on-the-remote-machine">
1127 Arquivos e processos na máquina remota1279 Arquivos e processos na máquina remota
1128</h4>1280</h4>
1129 1281
1130O Desktop instala um programa auxiliar e o Claude Code em `~/.claude/remote/` no diretório pessoal de cada usuário que se conecta a uma máquina remota Linux ou macOS. O programa auxiliar não escuta em nenhuma porta de rede, mas o Claude Code e os programas que ele inicia, como servidores MCP e servidores de desenvolvimento, podem escutar.1282O Desktop instala um programa auxiliar e o Claude Code em `~/.claude/remote/` no diretório pessoal de cada usuário que se conecta a uma máquina remota Linux ou macOS. O auxiliar não escuta em nenhuma porta de rede, mas o Claude Code e os programas que ele inicia, como servidores MCP e servidores de desenvolvimento, podem escutar.
1131 1283
1132| Pasta | Conteúdo |1284| Pasta | Conteúdo |
1133| - | - |1285| - | - |
1134| `~/.claude/remote/srv/` | O programa auxiliar, em uma pasta por versão |1286| `~/.claude/remote/srv/` | O auxiliar, em uma pasta por versão |
1135| `~/.claude/remote/ccd-cli/` | O Claude Code, em um arquivo por versão |1287| `~/.claude/remote/ccd-cli/` | O Claude Code, em um arquivo por versão |
1136| `~/.claude/remote/run/` | Os arquivos de tempo de execução do programa auxiliar, como seu socket e seu log, em uma pasta por computador que se conecta |1288| `~/.claude/remote/run/` | Os arquivos de runtime do auxiliar, como seu socket e log, em uma pasta por computador que se conecta |
1137| `~/.claude/remote/plugins/` | Plugins que o Desktop copia do computador do usuário |1289| `~/.claude/remote/plugins/` | Plugins que o Desktop copia do computador do usuário |
1138| [`~/.claude/uploads/`](/docs/pt/claude-directory#clear-local-data) | Arquivos que o usuário anexa às mensagens, em uma pasta por sessão |1290| [`~/.claude/uploads/`](/docs/pt/claude-directory#clear-local-data) | Arquivos que o usuário anexa às mensagens, em uma pasta por sessão |
1139 1291
1140Para listar os processos de um usuário, execute `pgrep -fl "$HOME/.claude/remote/"` na máquina remota como esse usuário, ou com o diretório pessoal do usuário no lugar de `$HOME`:1292Para listar os processos de um usuário, execute `pgrep -fl "$HOME/.claude/remote/"` na máquina remota como esse usuário, ou com o diretório pessoal do usuário no lugar de `$HOME`:
1141 1293
1142* **Programa auxiliar**: um ou mais processos `server` para cada computador que se conecta1294* **Auxiliar**: um ou mais processos `server` para cada computador que se conecta
1143* **Claude Code**: os processos que o programa auxiliar inicia para as sessões do usuário, cada um a partir de um arquivo com o nome de sua versão, como `2.1.295-…`1295* **Claude Code**: os processos que o auxiliar inicia para as sessões do usuário, cada um a partir de um arquivo com o nome de sua versão, como `2.1.295-…`
1144 1296
1145O Desktop acessa o programa auxiliar por meio da conexão SSH do usuário, pelo socket Unix `rpc.sock` na pasta do programa auxiliar em `~/.claude/remote/run/`. Exceto o root, outros usuários da máquina não conseguem se conectar a esse socket, porque ele tem modo 600 e sua pasta tem modo 700.1297O Desktop acessa o auxiliar por meio da conexão SSH do usuário, pelo socket Unix `rpc.sock` na pasta do auxiliar em `~/.claude/remote/run/`. Exceto o root, outros usuários na máquina não conseguem se conectar a esse socket, porque ele tem modo 600 e sua pasta tem modo 700.
1146 1298
1147Para saber quando o programa auxiliar para sozinho, veja [Limites enquanto o Desktop está desconectado](#limits-while-desktop-is-disconnected).1299Para saber quando o auxiliar para sozinho, consulte [Limites enquanto o Desktop está desconectado](#limits-while-desktop-is-disconnected).
1148 1300
1149Para remover o programa auxiliar e o Claude Code de um usuário:1301Para remover o auxiliar e o Claude Code de um usuário:
1150 1302
1151<Steps>1303<Steps>
1152 <Step title="Fechar o Desktop">1304 <Step title="Saia do Desktop">
1153 Feche o Desktop em cada computador a partir do qual o usuário se conecta. Ele instala os dois programas novamente na próxima vez que se conectar, e pode se reconectar sozinho.1305 Saia do Desktop em cada computador a partir do qual o usuário se conecta. Ele instala ambos os programas novamente na próxima vez que se conectar, e pode se reconectar sozinho.
1154 </Step>1306 </Step>
1155 1307
1156 <Step title="Encerrar os processos">1308 <Step title="Encerre os processos">
1157 Com login como esse usuário na máquina remota, execute `kill` com cada ID de processo que o [`pgrep`](#files-and-processes-on-the-remote-machine) listar.1309 Com login como esse usuário na máquina remota, execute `kill` com o ID de cada processo do Claude Code que o [`pgrep`](#files-and-processes-on-the-remote-machine) listar. Depois que eles sumirem da lista, execute `kill` com o ID de cada processo `server`. Se você encerrar um processo `server` primeiro, um comando que o Claude Code está executando pode continuar em execução.
1310
1311 Em seguida, liste os processos restantes do usuário, por exemplo com `ps -u "$(id -un)" -f`, e encerre qualquer um que você reconheça como iniciado pelo Claude Code. Programas que ele deixou em segundo plano podem continuar em execução depois que ele termina, sem estar na lista do `pgrep`.
1158 </Step>1312 </Step>
1159 1313
1160 <Step title="Excluir a pasta">1314 <Step title="Exclua a pasta">
1161 Exclua `~/.claude/remote/`. Para remover os próprios arquivos do Claude Code em `~/.claude/` e `~/.claude.json`, veja [Remover arquivos de configuração](/docs/pt/setup#remove-configuration-files).1315 Exclua `~/.claude/remote/`. Para remover os próprios arquivos do Claude Code em `~/.claude/` e `~/.claude.json`, consulte [Remover arquivos de configuração](/docs/pt/setup#remove-configuration-files).
1162 </Step>1316 </Step>
1163</Steps>1317</Steps>
1164 1318
1166 Encerrar o processo de uma sessão1320 Encerrar o processo de uma sessão
1167</h5>1321</h5>
1168 1322
1169Para encerrar o processo do Claude Code de uma sessão, [arquive a sessão](#work-in-parallel-with-sessions) no Desktop enquanto o Desktop está conectado à máquina remota. O processo continua em execução depois que a tarefa dele termina e depois que você fecha o Desktop.1323Para encerrar o processo do Claude Code de uma sessão, [arquive a sessão](#work-in-parallel-with-sessions) no Desktop enquanto o Desktop estiver conectado à máquina remota. O processo continua em execução depois que sua tarefa é concluída e depois que você sai do Desktop.
1324
1325Antes de arquivar uma sessão que tem um worktree, consulte [Trabalhar em paralelo com sessões](#work-in-parallel-with-sessions).
1326
1327<h5 id="see-which-user-the-processes-run-as">
1328 Ver com qual usuário os processos são executados
1329</h5>
1330
1331O auxiliar e o Claude Code são executados como o usuário com o qual o Desktop faz login via SSH. Instalá-los e iniciá-los não exige `sudo`. Para verificar o usuário, execute `ps -o user= -p` na máquina remota com um ID de processo que o [`pgrep`](#files-and-processes-on-the-remote-machine) listar.
1170 1332
1171Antes de arquivar uma sessão que tem um worktree, veja [Trabalhar em paralelo com sessões](#work-in-parallel-with-sessions).1333Os programas que o Claude Code inicia, como comandos do shell e servidores MCP, também são iniciados como esse usuário. Revise os direitos desse usuário na máquina remota, incluindo suas regras de `sudo`, como faria para uma pessoa que executa comandos ali.
1172 1334
1173<h5 id="see-who-connected-to-the-remote-machine">1335<h5 id="see-who-connected-to-the-remote-machine">
1174 Ver quem se conectou à máquina remota1336 Ver quem se conectou à máquina remota
1175</h5>1337</h5>
1176 1338
1177Para descobrir quem se conectou a uma máquina remota, leia o log do servidor SSH nessa máquina, onde um login a partir do Desktop parece um login a partir de um terminal. Com o Desktop no macOS ou Linux, espere uma entrada a cada vez que o Desktop se conecta, não uma para cada sessão.1339Para descobrir quem se conectou a uma máquina remota, leia o log do servidor SSH nessa máquina, onde um login do Desktop se parece com um de um terminal. Com o Desktop no macOS ou no Linux, espere uma entrada cada vez que o Desktop se conecta, e não uma para cada sessão.
1340
1341Você não encontrará as conexões SSH do Desktop nas [métricas e eventos](/docs/pt/monitoring-usage#available-metrics-and-events) do Claude Code. Para descobrir a partir deles em qual máquina remota uma sessão SSH executou, consulte [Atribuir telemetria a sessões SSH do Desktop](/docs/pt/monitoring-usage#attribute-telemetry-to-desktop-ssh-sessions). Para o registro do próprio Desktop sobre suas conexões, consulte [Obter os logs do Desktop para um problema de SSH](#get-desktops-logs-for-an-ssh-problem).
1342
1343<h4 id="connections-that-close-before-login">
1344 Conexões que fecham antes do login
1345</h4>
1346
1347Se o log do servidor SSH mostrar conexões que fecham antes de qualquer login, elas podem ser testes do Desktop na porta SSH. O Desktop testa se uma máquina responde, por exemplo depois que uma conexão com ela falhou. Ele abre uma conexão com a porta e a fecha imediatamente, sem enviar nada. Espere um teste ou vários seguidos, por exemplo oito em cerca de dois minutos.
1348
1349Se nada bane ou recusa endereços por causa dessas conexões, você não precisa fazer nada sobre os testes do Desktop. Se um endereço a partir do qual o Desktop se conecta for recusado ou banido, verifique [se o próprio servidor SSH recusa o endereço](#check-whether-the-ssh-server-itself-refuses-the-address) e [se o fail2ban conta os testes do Desktop](#check-whether-fail2ban-counts-desktops-tests).
1350
1351<h5 id="recognize-a-test-in-the-ssh-server’s-log">
1352 Reconhecer um teste no log do servidor SSH
1353</h5>
1354
1355Compare as linhas do seu log com as que um servidor OpenSSH no Linux grava para um teste no `LogLevel` padrão, na linha correspondente à versão do seu servidor. Você pode ver as linhas da última coluna em vez disso se a saudação do servidor chegar antes de o Desktop fechar a conexão:
1356
1357| Versão do OpenSSH | Linhas para um teste | Linhas se a saudação chegar primeiro |
1358| - | - | - |
1359| 6.6 a 7.9 | Uma linha com `Did not receive identification string from 203.0.113.7` | A mesma linha |
1360| 8.0 a 8.2 | `error: kex_exchange_identification: Connection closed by remote host` | `error: kex_exchange_identification: read: Connection reset by peer` |
1361| 8.3 a 9.4 | `error: kex_exchange_identification: Connection closed by remote host`, depois `Connection closed by 203.0.113.7 port 51234` | `error: kex_exchange_identification: read: Connection reset by peer`, depois `Connection reset by 203.0.113.7 port 51234` |
1362| 9.5 a 10.2 | `Connection closed by 203.0.113.7 port 51234` | `error: kex_exchange_identification: read: Connection reset by peer`, depois `Connection reset by 203.0.113.7 port 51234` |
1363| 10.3 a 10.5 | `Connection closed by 203.0.113.7 port 51234 [preauth]` | `error: kex_exchange_identification: read: Connection reset by peer [preauth]`, depois `Connection reset by 203.0.113.7 port 51234 [preauth]` |
1364
1365Outros programas que abrem a porta e a fecham podem deixar as mesmas linhas. Onde uma linha tiver um endereço, verifique se é um a partir do qual um computador com o Desktop se conecta.
1366
1367As linhas das versões 8.0 a 8.2 não têm endereço. Para obter um, defina `LogLevel VERBOSE` no `sshd_config` e execute `sshd -T | grep -i loglevel` como root. Se ele imprimir `loglevel VERBOSE`, recarregue o servidor SSH. Depois procure uma linha com `Connection from 203.0.113.7 port 51234` antes da linha do teste.
1368
1369<a id="check-whether-the-ssh-server-itself-refuses-the-address" />
1370
1371<h5 id="check-whether-the-ssh-server-itself-refuses-the-address">
1372 Verificar se o próprio servidor SSH recusa o endereço
1373</h5>
1374
1375Se as conexões forem recusadas a partir de um endereço que muitos computadores com o Desktop compartilham, procure no log do servidor SSH uma linha que termine como esta:
1376
1377```text theme={null}
1378drop connection #0 from [203.0.113.7]:51234 on [192.0.2.10]:22 penalty: connections without attempting authentication
1379```
1380
1381Com o `LogLevel` padrão, o OpenSSH 9.8 e posteriores podem gravar essa linha ao recusar um endereço por conexões que fecharam sem tentar fazer login, como fazem os testes do Desktop. Com as configurações padrão, você não vê essa linha apenas após alguns testes.
1382
1383Para evitar a recusa, defina `PerSourcePenaltyExemptList` no `sshd_config` com os endereços a partir dos quais as pessoas se conectam, por exemplo `PerSourcePenaltyExemptList 203.0.113.7`. O servidor então não aplica nenhuma de suas penalidades a esses endereços, incluindo as de logins com falha. Para verificar o arquivo, execute `sshd -T | grep -i persourcepenalt` como root. Se ele imprimir sua lista, recarregue o servidor SSH.
1384
1385<a id="check-whether-fail2ban-counts-desktops-tests" />
1386
1387<h5 id="check-whether-fail2ban-counts-desktop’s-tests">
1388 Verificar se o fail2ban conta os testes do Desktop
1389</h5>
1390
1391Se o fail2ban 0.10.5 ou posterior baniu um endereço a partir do qual o Desktop se conecta, encontre o modo da sua jail em `jail.conf`, `jail.local` ou em `jail.d/`:
1392
1393* **Uma linha `filter` que nomeia um modo entre colchetes**, como `filter = sshd[mode=aggressive]`: use esse modo.
1394* **Apenas a linha `filter` padrão**, com `[mode=%(mode)s]`: use a linha `mode`, ou `normal` se não houver nenhuma.
1395
1396Se o modo for `normal`, o fail2ban não conta as linhas dos testes do Desktop, então procure outra causa para o banimento.
1397
1398Para outro modo, copie as linhas do seu próprio log para um arquivo na máquina remota. Copie cada linha inteira, da data até o fim, e as duas linhas quando um teste deixa duas. Execute `fail2ban-regex` ali com o arquivo e o modo da sua jail, por exemplo `aggressive`:
1399
1400```bash theme={null}
1401fail2ban-regex -o ip lines.log "sshd[mode=aggressive]"
1402```
1403
1404Para cada falha que o fail2ban conta, o comando imprime o endereço em uma linha própria, como `203.0.113.7`. Nesse caso, [evite um banimento](#prevent-a-ban-by-fail2ban). Se ele não imprimir nada, o fail2ban não conta nenhuma dessas linhas nesse modo, então procure outra causa para o banimento.
1405
1406<a id="prevent-a-ban-by-fail2ban" />
1407
1408<h5 id="prevent-a-ban-by-fail2ban">
1409 Evitar um banimento pelo fail2ban
1410</h5>
1411
1412Para impedir que o fail2ban bana um endereço por causa dos testes do Desktop, altere uma de duas configurações da jail, cada uma com um custo:
1413
1414* **`mode`**: defina-o como `normal` onde quer que sua jail o defina, em uma linha `mode` ou entre os colchetes de uma linha como `filter = sshd[mode=aggressive]`. Você abre mão de todas as contagens que apenas os outros modos fazem, por exemplo de clientes que se conectam e saem sem tentar fazer login.
1415* **`ignoreip`**: defina-o com os endereços a partir dos quais as pessoas se conectam, por exemplo `ignoreip = 203.0.113.7`. O fail2ban então não conta nada desses endereços, incluindo logins com falha.
1178 1416
1179<h4 id="use-mcp-servers-set-up-on-the-remote-machine">1417<h4 id="use-mcp-servers-set-up-on-the-remote-machine">
1180 Usar servidores MCP configurados na máquina remota1418 Usar servidores MCP configurados na máquina remota
1181</h4>1419</h4>
1182 1420
1183Para usar um [servidor MCP](/docs/pt/mcp) de `~/.claude.json` ou do `.mcp.json` de um projeto em uma sessão SSH, configure-o nesses arquivos na máquina remota. O Claude Code inicia os servidores stdio deles ali, então instale na máquina remota os comandos que esses servidores executam. Para servidores de `claude_desktop_config.json`, veja [Limites enquanto o Desktop está desconectado](#limits-while-desktop-is-disconnected).1421Para usar um [servidor MCP](/docs/pt/mcp) de `~/.claude.json` ou do `.mcp.json` de um projeto em uma sessão SSH, configure-o nesses arquivos na máquina remota. O Claude Code inicia os servidores stdio deles ali, portanto instale na máquina remota os comandos que esses servidores executam. Para servidores de `claude_desktop_config.json`, consulte [Limites enquanto o Desktop está desconectado](#limits-while-desktop-is-disconnected).
1184 1422
1185<h4 id="open-an-ssh-session-from-a-link">1423<h4 id="open-an-ssh-session-from-a-link">
1186 Abrir uma sessão SSH a partir de um link1424 Abrir uma sessão SSH a partir de um link
1187</h4>1425</h4>
1188 1426
1189Um link `claude://code/new` abre a página de nova sessão do Desktop, e ele pode nomear uma conexão SSH. Coloque esse tipo de link em um runbook, dashboard ou página de wiki para abrir o Desktop configurado para a máquina e a pasta certas. Para plataformas que removem esses links, veja [O link é renderizado como texto simples em vez de ser clicável](/docs/pt/deep-links#the-link-renders-as-plain-text-instead-of-being-clickable).1427Um link `claude://code/new` abre a página de nova sessão do Desktop e pode indicar uma conexão SSH. Coloque esse tipo de link em um runbook, painel ou página wiki para abrir o Desktop configurado para a máquina e a pasta certas. Para plataformas que removem esses links, consulte [O link é exibido como texto simples em vez de ser clicável](/docs/pt/deep-links#the-link-renders-as-plain-text-instead-of-being-clickable).
1190 1428
1191Links SSH requerem Claude Desktop v2.110.0 ou posterior.1429Links SSH requerem o Claude Desktop v2.110.0 ou posterior.
1192 1430
1193O link a seguir nomeia o usuário `dev` em `build.example.com`, a porta 2222 e a pasta `/srv/payments`, e preenche um prompt:1431O link a seguir indica o usuário `dev` em `build.example.com`, a porta 2222 e a pasta `/srv/payments`, e preenche um prompt:
1194 1432
1195```text theme={null}1433```text theme={null}
1196claude://code/new?ssh_host=dev%40build.example.com&ssh_port=2222&ssh_folder=/srv/payments&q=Investigate%20the%20failed%20deploy1434claude://code/new?ssh_host=dev%40build.example.com&ssh_port=2222&ssh_folder=/srv/payments&q=Investigate%20the%20failed%20deploy
1203| `ssh_host` | `host` ou `user@host`, escrito como no campo **SSH host**. O valor não pode começar com `-`, e a parte do host aceita apenas letras, dígitos, `.`, `_`, `:` e `-` |1441| `ssh_host` | `host` ou `user@host`, escrito como no campo **SSH host**. O valor não pode começar com `-`, e a parte do host aceita apenas letras, dígitos, `.`, `_`, `:` e `-` |
1204| `ssh_port` | Um número de porta de 1 a 65535 |1442| `ssh_port` | Um número de porta de 1 a 65535 |
1205| `ssh_folder` | Uma pasta na máquina remota. Comece-a com `/` ou `~/`, ou use `~` |1443| `ssh_folder` | Uma pasta na máquina remota. Comece-a com `/` ou `~/`, ou use `~` |
1206| `q` | Texto codificado em URL para a caixa de prompt |1444| `q` | Texto codificado para URL para a caixa de prompt |
1207 1445
1208Um alias de `~/.ssh/config` funciona como `ssh_host` apenas para as pessoas que têm essa entrada. Para corresponder a uma conexão que as pessoas já têm, dê ao link o mesmo usuário, host e porta dessa conexão.1446Um alias de `~/.ssh/config` funciona como `ssh_host` apenas para pessoas que têm essa entrada. Para corresponder a uma conexão que as pessoas já têm, forneça ao link o mesmo usuário, host e porta dessa conexão.
1209 1447
1210Quando você abre o link, o Desktop pede que você confirme antes de selecionar a conexão:1448Quando você abre o link, o Desktop pede que você confirme antes de selecionar a conexão:
1211 1449
1212* **Uma conexão que você já tem**: se o host, o usuário e a porta corresponderem a uma de suas conexões, o Desktop pergunta se deve usá-la e mostra o nome e o host da conexão, além da pasta, se o link nomear uma.1450* **Uma conexão que você já tem**: se o host, o usuário e a porta corresponderem a uma das suas conexões, o Desktop pergunta se deve usá-la e mostra o nome e o host da conexão, e a pasta, se o link indicar uma.
1213* **Uma nova conexão**: caso contrário, o Desktop abre o diálogo para adicionar uma conexão SSH. Quando você adiciona a conexão, o Desktop pergunta se deve se conectar antes de salvar qualquer coisa e mostra o host do link, além da porta e da pasta, se o link as nomear.1451* **Uma nova conexão**: caso contrário, o Desktop abre a caixa de diálogo para adicionar uma conexão SSH. Quando você adiciona a conexão, o Desktop pergunta se deve se conectar antes de salvar qualquer coisa e mostra o host do link, e a porta e a pasta, se o link as indicar.
1214 1452
1215Até que você confirme, o Desktop não salva o host, a porta ou a pasta do link, e não seleciona nem abre uma conexão com eles. Se uma conexão SSH já estiver selecionada, a página de nova sessão ainda pode se conectar a ela por conta própria, como faz sem um link, mesmo quando o link nomeia o mesmo host. Um link não pode conter um arquivo de chave, uma senha ou um comando.1453Até que você confirme, o Desktop não salva o host, a porta ou a pasta do link, e não seleciona nem abre uma conexão com eles. Se uma conexão SSH já estiver selecionada, a página de nova sessão ainda pode se conectar a ela sozinha, como faz sem um link, mesmo quando o link indica o mesmo host. Um link não pode conter um arquivo de chave, uma senha ou um comando.
1216 1454
1217Qualquer pessoa pode escrever um link, então verifique o que ele preencheu:1455Qualquer pessoa pode escrever um link, portanto verifique o que ele preencheu:
1218 1456
1219* **Antes de confirmar**: verifique o host e a pasta.1457* **Antes de confirmar**: verifique o host e a pasta.
1220* **Antes de enviar**: verifique o prompt e o ambiente selecionado.1458* **Antes de enviar**: verifique o prompt e o ambiente selecionado.
1221 1459
1222O Desktop preenche o prompt quando o link é aberto, no lugar de qualquer texto que você ainda não enviou, e nunca o envia por você. Ele trata o prompt como texto simples, então um `/` ou `!` no início e uma menção de arquivo com `@` não funcionam como comando ou menção. Se você cancelar, o prompt permanece na caixa e o ambiente que você tinha selecionado não muda.1460O Desktop preenche o prompt quando o link é aberto, no lugar de qualquer texto que você ainda não enviou, e nunca o envia por você. Ele trata o prompt como texto simples, portanto um `/` ou `!` inicial e uma menção de arquivo com `@` não funcionam como comando ou menção. Se você cancelar, o prompt permanece na caixa e o ambiente que você havia selecionado não muda.
1223 1461
1224Um link não contorna a [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to). O Desktop verifica a allowlist quando se conecta.1462Um link não contorna a [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to). O Desktop verifica a allowlist ao se conectar.
1225 1463
1226Se o link abrir o Desktop sem um diálogo sobre a conexão, procure uma destas causas:1464Se o link abrir o Desktop sem uma caixa de diálogo sobre a conexão, procure uma destas causas:
1227 1465
1228* **Você não está conectado à sua conta**: faça login e abra o link novamente.1466* **Você está desconectado**: faça login e abra o link novamente.
1229* **Outro diálogo está aberto**: feche-o e abra o link novamente.1467* **Outra caixa de diálogo está aberta**: feche-a e abra o link novamente.
1230* **O link não é válido**: o Desktop mostra uma mensagem que diz o que corrigir e não preenche o prompt.1468* **O link não é válido**: o Desktop mostra uma mensagem que diz o que corrigir e não preenche o prompt.
1231* **O Desktop é anterior à v2.110.0**: versões anteriores ignoram os parâmetros SSH e abrem a página de nova sessão apenas com o prompt.1469* **O Desktop é anterior à v2.110.0**: versões anteriores ignoram os parâmetros SSH e abrem a página de nova sessão apenas com o prompt.
1232* **As sessões SSH estão desativadas**: se seu administrador definir a allowlist como um array vazio, o Desktop recusa links SSH.1470* **As sessões SSH estão desativadas**: se seu administrador definir a allowlist como um array vazio, o Desktop recusa links SSH.
1233 1471
1234<h4 id="pre-configure-ssh-connections-for-your-team">1472<h4 id="pre-configure-ssh-connections-for-your-team">
1235 Pre-configure SSH connections for your team1473 Pré-configurar conexões SSH para sua equipe
1236</h4>1474</h4>
1237 1475
1238Administradores podem distribuir conexões SSH para membros da equipe definindo `sshConfigs` nas [configurações gerenciadas](/docs/pt/managed-settings). Conexões definidas desta forma aparecem no menu suspenso de ambiente de cada usuário automaticamente e são mostradas como gerenciadas. Os usuários podem selecioná-las e [definir sua própria **Worktree folder**](#choose-where-ssh-session-worktrees-go) para elas, mas não podem editar mais nada nem deletá-las no aplicativo.1476Os administradores podem distribuir conexões SSH aos membros da equipe definindo `sshConfigs` nas [configurações gerenciadas](/docs/pt/managed-settings). As conexões definidas dessa forma aparecem automaticamente no menu suspenso de ambiente de cada usuário e são mostradas como gerenciadas. Os usuários podem selecioná-las e [definir sua própria **Worktree folder**](#choose-where-ssh-session-worktrees-go) para elas, mas não podem editar mais nada nem excluí-las no aplicativo.
1239 1477
1240O exemplo a seguir pré-configura uma única conexão:1478O exemplo a seguir pré-configura uma única conexão:
1241 1479
1255 1493
1256Cada entrada requer `id`, `name` e `sshHost`. Os campos `sshPort` e `sshIdentityFile` são opcionais. Os usuários também podem adicionar `sshConfigs` ao seu próprio `~/.claude/settings.json`.1494Cada entrada requer `id`, `name` e `sshHost`. Os campos `sshPort` e `sshIdentityFile` são opcionais. Os usuários também podem adicionar `sshConfigs` ao seu próprio `~/.claude/settings.json`.
1257 1495
1258Se você omitir `user@` em `sshHost`, o Desktop se conecta como o `User` que o `~/.ssh/config` de cada desenvolvedor define para o host ou, caso contrário, como o nome de usuário dele em seu próprio computador.1496Se você omitir `user@` em `sshHost`, o Desktop se conecta como o `User` que o `~/.ssh/config` de cada desenvolvedor define para o host, ou então como o nome de usuário dele no próprio computador.
1259 1497
1260<h4 id="restrict-which-ssh-hosts-users-can-connect-to">1498<h4 id="restrict-which-ssh-hosts-users-can-connect-to">
1261 Restrict which SSH hosts users can connect to1499 Restringir a quais hosts SSH os usuários podem se conectar
1262</h4>1500</h4>
1263 1501
1264Administradores podem limitar as sessões SSH do Desktop a um conjunto aprovado de hosts definindo `sshHostAllowlist` nas [configurações gerenciadas](/docs/pt/managed-settings). Quando definido, os usuários podem se conectar apenas a hosts cujo nome de host resolvido corresponde a um dos padrões. Defina-o como um array vazio para desabilitar sessões SSH. A [entrada de referência de `sshHostAllowlist`](/docs/pt/settings-reference#sshhostallowlist) explica como um array vazio se combina com listas em outras fontes gerenciadas.1502Os administradores podem limitar as sessões SSH do Desktop a um conjunto aprovado de hosts definindo `sshHostAllowlist` nas [configurações gerenciadas](/docs/pt/managed-settings). Quando definida, os usuários só podem se conectar a hosts cujo nome de host resolvido corresponda a um dos padrões. Defina-a como um array vazio para desativar as sessões SSH. A [entrada de referência de `sshHostAllowlist`](/docs/pt/settings-reference#sshhostallowlist) explica como um array vazio se combina com listas de outras fontes gerenciadas.
1265 1503
1266O exemplo a seguir permite conexões a qualquer host sob `devboxes.example.com` e a um único host bastion nomeado:1504O exemplo a seguir permite conexões a qualquer host em `devboxes.example.com` e a um único bastion host nomeado:
1267 1505
1268```json theme={null}1506```json theme={null}
1269{1507{
1272```1510```
1273 1511
1274<Warning>1512<Warning>
1275 Se sua organização fornece [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings), defina `sshHostAllowlist` lá. Por padrão, o Desktop lê a chave apenas da [fonte gerenciada de maior prioridade que fornece uma chave de política](/docs/pt/managed-settings#how-claude-code-combines-managed-sources). Se essa fonte deixar a chave sem definição, o Desktop ignora uma lista em uma política MDM ou arquivo de configurações gerenciadas de prioridade inferior e trata a chave como [não definida](/docs/pt/settings-reference#sshhostallowlist). O Desktop não mostra nenhum aviso.1513 Se sua organização fornece [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings), defina `sshHostAllowlist` ali. Por padrão, o Desktop lê a chave apenas da [fonte gerenciada de maior prioridade que fornece uma chave de política](/docs/pt/managed-settings#how-claude-code-combines-managed-sources). Se essa fonte deixar a chave indefinida, o Desktop ignora uma lista em uma política MDM ou arquivo de configurações gerenciadas de menor prioridade e trata a chave como [indefinida](/docs/pt/settings-reference#sshhostallowlist). O Desktop não mostra nenhum aviso.
1276 1514
1277 Mantenha também a mesma lista na máquina de cada usuário, na política MDM ou no arquivo de configurações gerenciadas de maior prioridade ali. O Desktop busca as configurações gerenciadas pelo servidor na inicialização e não mantém nenhuma cópia em cache, então, até que uma busca seja bem-sucedida, a lista da máquina é a que se aplica.1515 Mantenha também a mesma lista na máquina de cada usuário, na política MDM ou no arquivo de configurações gerenciadas de maior prioridade ali. O Desktop busca as configurações gerenciadas pelo servidor na inicialização e não mantém nenhuma cópia em cache, portanto, até que uma busca seja bem-sucedida, a lista da máquina é a que se aplica.
1278</Warning>1516</Warning>
1279 1517
1280Padrões são insensíveis a maiúsculas e minúsculas. `*` corresponde a qualquer host, e `*.example.com` corresponde a `example.com` e qualquer subdomínio. Qualquer outra coisa é uma correspondência exata. A verificação é executada contra o nome de host após resolução `~/.ssh/config` via `ssh -G`, portanto entradas `Host` aliases e `ProxyCommand`/`ProxyJump` são permitidas desde que o `HostName` resolvido corresponda.1518Os padrões não diferenciam maiúsculas de minúsculas. `*` corresponde a qualquer host, e `*.example.com` corresponde a `example.com` e a qualquer subdomínio. Qualquer outra coisa é uma correspondência exata. A verificação é feita no nome de host após a resolução de `~/.ssh/config` via `ssh -G`, portanto aliases de `Host` e entradas `ProxyCommand`/`ProxyJump` são permitidos desde que o `HostName` resolvido corresponda.
1281 1519
1282`sshHostAllowlist` é lido apenas de managed settings; valores em configurações de usuário ou projeto são ignorados. Apenas o aplicativo Claude Desktop honra esta configuração; a CLI Claude Code e extensões IDE não a leem, e não restringe comandos `ssh` executados através da ferramenta Bash. Governa quais hosts o aplicativo Desktop se conecta, não saída de rede, portanto combine-o com controles de rede ou zero-trust da sua organização se você precisar de um limite rígido.1520`sshHostAllowlist` é lida apenas das configurações gerenciadas; valores nas configurações de usuário ou de projeto são ignorados. Apenas o aplicativo Claude Desktop respeita essa configuração; a CLI do Claude Code e as extensões de IDE não a leem, e ela não restringe comandos `ssh` executados por meio da ferramenta Bash. Ela controla a quais hosts o aplicativo Desktop se conecta, não o tráfego de saída da rede, portanto combine-a com os controles de rede ou de zero trust da sua organização se precisar de um limite rígido.
1283 1521
1284<h4 id="turn-off-local-sessions-and-distribute-ssh-connections">1522<h4 id="turn-off-local-sessions-and-distribute-ssh-connections">
1285 Desativar sessões locais e distribuir conexões SSH1523 Desativar sessões locais e distribuir conexões SSH
1286</h4>1524</h4>
1287 1525
1288Para desativar sessões locais e limitar as sessões SSH aos hosts que você escolher, implante [`disableDesktopLocalSessions`](/docs/pt/settings-reference#disabledesktoplocalsessions), [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) e [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to) juntos.1526Para desativar as sessões locais e limitar as sessões SSH aos hosts que você escolher, implante [`disableDesktopLocalSessions`](/docs/pt/settings-reference#disabledesktoplocalsessions), [`sshConfigs`](#pre-configure-ssh-connections-for-your-team) e [`sshHostAllowlist`](#restrict-which-ssh-hosts-users-can-connect-to) em conjunto.
1289 1527
1290<Note>1528<Note>
1291 Esta configuração é para usuários que fazem login com uma conta Claude. Com um [provedor de terceiros](/docs/pt/third-party-integrations), as sessões SSH ficam desativadas por padrão, e definir `sshHostAllowlist` pode ativá-las. Leia [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions) antes de implantar essas chaves.1529 Esta configuração é para usuários que fazem login com uma conta Claude. Com um [provedor terceirizado](/docs/pt/third-party-integrations), as sessões SSH ficam desativadas por padrão, e definir `sshHostAllowlist` pode ativá-las. Leia [SSH remote sessions in Claude Desktop on 3P](https://claude.com/docs/third-party/claude-desktop/ssh-remote-sessions) antes de implantar essas chaves.
1292</Note>1530</Note>
1293 1531
1294O exemplo a seguir desativa as sessões locais, adiciona uma conexão e limita as sessões SSH ao host dessa conexão:1532O exemplo a seguir desativa as sessões locais, adiciona uma conexão e limita as sessões SSH ao host dessa conexão:
1307}1545}
1308```1546```
1309 1547
1310As chaves se aplicam ao aplicativo desktop. Elas não alteram outras formas de executar Claude Code, como a CLI, o Cowork e as sessões na nuvem:1548As chaves se aplicam ao aplicativo desktop. Elas deixam inalteradas outras formas de executar o Claude Code, como a CLI, o Cowork e as sessões na nuvem:
1311 1549
1312* **A CLI**: nenhuma das chaves impede um desenvolvedor de executar a CLI do Claude Code em seu próprio computador1550* **A CLI**: nenhuma das chaves impede que um desenvolvedor execute a CLI do Claude Code no próprio computador
1313* **Cowork**: nenhuma das chaves se aplica a sessões do [Cowork](https://claude.com/docs/cowork/overview) ou a tarefas agendadas do Cowork1551* **Cowork**: nenhuma das chaves se aplica a sessões do [Cowork](https://claude.com/docs/cowork/overview) ou a tarefas agendadas do Cowork
1314* **Sessões na nuvem**: nenhuma das chaves altera se as [sessões na nuvem](#cloud-sessions) estão disponíveis. Para desativá-las, use a configuração **Cloud sessions** em [Admin console controls](#admin-console-controls).1552* **Sessões na nuvem**: nenhuma das chaves altera a disponibilidade das [sessões na nuvem](#cloud-sessions). Para desativá-las, use a configuração **Cloud sessions** em [Controles do console de administração](#admin-console-controls).
1315 1553
1316Ao adaptar o exemplo, verifique os nomes de host, a versão do Desktop e as permissões do arquivo:1554Ao adaptar o exemplo, verifique os nomes de host, a versão do Desktop e as permissões do arquivo:
1317 1555
1318* **Nomes de host**: certifique-se de que um padrão em `sshHostAllowlist` corresponda ao nome de host de cada entrada de `sshConfigs`, sem `user@`, ou os desenvolvedores não conseguirão se conectar a ela. Para saber como o Desktop faz a correspondência de um nome de host, veja [Restrict which SSH hosts users can connect to](#restrict-which-ssh-hosts-users-can-connect-to).1556* **Nomes de host**: certifique-se de que um padrão em `sshHostAllowlist` corresponda ao nome de host de cada entrada de `sshConfigs`, sem `user@`, ou os desenvolvedores não conseguirão se conectar a ela. Para saber como o Desktop faz a correspondência de um nome de host, consulte [Restringir a quais hosts SSH os usuários podem se conectar](#restrict-which-ssh-hosts-users-can-connect-to).
1319* **Versão**: `disableDesktopLocalSessions` requer Claude Desktop v1.37937.0 ou posterior1557* **Versão**: `disableDesktopLocalSessions` requer o Claude Desktop v1.37937.0 ou posterior
1320* **Permissões do arquivo**: certifique-se de que a conta de cada desenvolvedor no computador consiga ler o arquivo de configurações gerenciadas. O Desktop não aplica as chaves de um arquivo que a conta não consegue ler, e o Claude Code também [é iniciado sem elas](/docs/pt/managed-settings#find-entries-claude-code-dropped).1558* **Permissões do arquivo**: certifique-se de que a conta de cada desenvolvedor no computador possa ler o arquivo de configurações gerenciadas. O Desktop não aplica as chaves de um arquivo que a conta não consegue ler, e o Claude Code também [é iniciado sem elas](/docs/pt/managed-settings#find-entries-claude-code-dropped).
1321 1559
1322Coloque as três chaves em uma única [fonte gerenciada](/docs/pt/managed-settings#how-claude-code-combines-managed-sources), a de maior prioridade que você fornece. Se você fornece [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings), mantenha também uma cópia das três chaves na política MDM ou no arquivo de configurações gerenciadas de maior prioridade em cada computador. O Desktop busca as configurações gerenciadas pelo servidor na inicialização, e a cópia no computador se aplica até que uma busca seja bem-sucedida.1560Coloque as três chaves em uma única [fonte gerenciada](/docs/pt/managed-settings#how-claude-code-combines-managed-sources), a de maior prioridade que você fornece. Se você fornece [configurações gerenciadas pelo servidor](/docs/pt/server-managed-settings), mantenha também uma cópia das três chaves na política MDM ou no arquivo de configurações gerenciadas de maior prioridade em cada computador. O Desktop busca as configurações gerenciadas pelo servidor na inicialização, e a cópia no computador se aplica até que uma busca seja bem-sucedida.
1323 1561
1324Para confirmar que as configurações se aplicam, verifique o computador de um desenvolvedor:1562Para confirmar que as configurações se aplicam, verifique o computador de um desenvolvedor:
1325 1563
1326<Steps>1564<Steps>
1327 <Step title="Verificar o menu suspenso de ambiente">1565 <Step title="Verifique o menu suspenso de ambiente">
1328 Feche e reabra o Desktop e, em seguida, abra o menu suspenso de ambiente na caixa de prompt. **Local** fica acinzentado, e **Shared Dev VM** aparece em **SSH**. Se **Local** ainda estiver disponível, verifique a versão do Desktop, se o arquivo é um JSON válido e qual fonte gerenciada o computador lê.1566 Saia do Desktop e abra-o novamente, depois abra o menu suspenso de ambiente na caixa de prompt. **Local** fica esmaecido, e **Shared Dev VM** aparece em **SSH**. Se **Local** ainda estiver disponível, verifique a versão do Desktop, se o arquivo é um JSON válido e qual fonte gerenciada o computador lê.
1329 </Step>1567 </Step>
1330 1568
1331 <Step title="Adicionar um host que não está na allowlist">1569 <Step title="Adicione um host que não está na allowlist">
1332 [Adicione uma conexão SSH](#ssh-sessions) com um nome de host que não está na allowlist, como `other.example.com`. O Desktop salva a conexão, mas se recusa a conectar e informa que as configurações da sua organização não permitem a conexão.1570 [Adicione uma conexão SSH](#ssh-sessions) com um nome de host que não está na allowlist, como `other.example.com`. O Desktop salva a conexão, mas se recusa a se conectar, e informa que as configurações da sua organização não permitem a conexão.
1333 </Step>1571 </Step>
1334</Steps>1572</Steps>
1335 1573
1682 1920
1683Para qualquer outra mensagem, verifique os [requisitos da máquina remota](#remote-machine-requirements-for-ssh-sessions).1921Para qualquer outra mensagem, verifique os [requisitos da máquina remota](#remote-machine-requirements-for-ssh-sessions).
1684 1922
1923<a id="get-desktops-logs-for-an-ssh-problem" />
1924
1925<h3 id="get-desktop’s-logs-for-an-ssh-problem">
1926 Obter os logs do Desktop para um problema de SSH
1927</h3>
1928
1929Você obtém o `ssh.log`, o registro do Desktop de suas conexões SSH, em um arquivo zip com os logs do Desktop que você salva a partir do menu **Help**. Para salvá-lo, abra **Help > Troubleshooting** e selecione o item correspondente ao seu sistema:
1930
1931* **macOS**: **Show Logs in Finder**
1932* **Windows**: **Show Logs in File Explorer**
1933* **Linux**: **Show Logs in File Manager**
1934
1935Examine os arquivos antes de enviá-los, pois eles podem incluir nomes e outros detalhes do seu ambiente. `<host>` e `<user>` representam nomes que o Desktop substituiu. O Desktop não substitui todos os nomes, e um nome de host ou de usuário SSH ainda pode aparecer como foi escrito. Se você enviar o arquivo zip para alguém, informe qual host falhou e quando, pois os logs podem não mencioná-lo.
1936
1937O arquivo zip não contém o log do programa auxiliar que o Desktop instala na máquina remota. Para obter esse log também, copie o `remote-server.log` da pasta do programa auxiliar em [`~/.claude/remote/run/`](#files-and-processes-on-the-remote-machine) no diretório pessoal do usuário que se conectou. Examine esse arquivo também antes de enviá-lo.
1938
1685<h3 id="app-won’t-quit">1939<h3 id="app-won’t-quit">
1686 Aplicativo não quer sair1940 Aplicativo não quer sair
1687</h3>1941</h3>