SSH, SFTP e ferramentas remotas
Salve servidores SSH, conecte com senha, com uma chave ou com um código de uso único, confira a chave de host de cada servidor, navegue pelos arquivos dele por SFTP e encaminhe portas, tudo pelo Terminal. Esta página trata da parte SSH; o shell local tem uma página própria. Onde existe um botão mas o recurso ainda não está pronto (área de trabalho remota, partes do SFTP), a página avisa e explica o motivo.
O que é e como abrir
O Terminal abre como uma camada em tela cheia, com uma tela inicial, a tela do shell local e a tela SSH. Tudo nesta página acontece na tela SSH, onde cada aba é uma sessão remota. Fechar a camada, ou voltar à tela inicial, não encerra suas sessões.
- 1Toque em Ferramentas na barra inferior e depois em Terminal. Você também pode executar Abrir terminal na paleta de comandos, ou tocar no cartão Hosts SSH em Início (ele aparece depois que você salva um host).
- 2Na tela inicial, toque em Conexão rápida para digitar um
user@host, ou em Explorar hosts para abrir seus servidores salvos. Os dois levam à tela SSH. As sessões abertas aparecem como chips acima dos cartões, para você voltar a elas rapidamente. - 3Na tela SSH, cada aba é uma sessão remota. O + da barra de abas abre Hosts, e, sem nenhuma sessão aberta, Hosts aparece sozinho.
- 4As ferramentas: em um tablet (cerca de 660 dp de largura ou mais, sem divisão de tela) um painel à direita mostra as 32 ferramentas SSH como uma faixa de ícones. No celular, toque na chave inglesa da barra de abas (Mais opções) para abrir as mesmas ferramentas em um menu.

Mapa de telas
| Tela | Como chegar | O que você pode fazer |
|---|---|---|
| Tela inicial do Terminal | Ferramentas → Terminal, a paleta de comandos (Abrir terminal), ou o cartão Hosts SSH em Início | Shell local, Conexão rápida, Explorar hosts e chips para retomar sessões abertas. |
| Tela SSH | Conexão rápida ou Explorar hosts na tela inicial | Abas com sessões remotas, uma barra de status com Desconectar ou Reconectar e o painel ou menu de ferramentas. |
| Hosts | Explorar hosts, + na barra de abas, ou a ferramenta Hosts | Buscar, filtrar por grupo, Conectar todos, favoritos, Adicionar host, Editar, Excluir e o gerenciador de grupos. |
| Novo host / Editar host | Adicionar host ou Editar em Hosts | Endereço, autenticação, identidades, grupo e tags, proxy, host de salto. |
| Conexão rápida | A tela inicial, a ferramenta Conexão rápida, ou Rápido em Hosts | Conectar a user@host:porta com senha; o host é salvo. |
| Verificar chave do host / A chave do host mudou! | Automática, ao conectar a um servidor desconhecido ou cuja chave mudou | Comparar a impressão digital e escolher Confiar e conectar ou Rejeitar. |
| Desafio de autenticação | Automática, com a autenticação Teclado interativo | Responder a códigos de uso único e solicitações parecidas. |
| Chaves SSH e Gerar chave | A ferramenta Chaves SSH (grupo Segurança do menu) | Gerar, importar, copiar a chave pública, implantá-la em um servidor e excluir. Inclui chaves vinculadas ao dispositivo. |
| Navegador SFTP | A ferramenta Navegador SFTP (grupo Conexão), com uma sessão conectada | Navegar pelo servidor, criar pastas, renomear e excluir (também vários de uma vez). |
| Visualização de dois painéis | Visualização de dois painéis dentro do navegador SFTP | Ver a pasta do celular e o servidor lado a lado. Copiar arrastando ainda não funciona. |
| Fila de transferências | A ferramenta Fila de transferências (grupo Conexão) | Lista as transferências na fila. Por enquanto nada é adicionado a ela. |
| Redirecionamento de portas | A ferramenta Encaminhamento de Portas (grupo Conexão), com uma sessão conectada | Adicionar redirecionamentos locais e remotos para a sessão em foco. |
| VNC / RDP | A ferramenta VNC / RDP (grupo Conexão) | Salvar conexões VNC e RDP e conectar. A tela remota ainda não é desenhada. |
| Serial / UART | A ferramenta Serial / UART (grupo Conexão) | Salvar configurações de porta serial USB e conectar; o Android pede permissão para usar o dispositivo USB. |
| Provedores em nuvem | A ferramenta Provedores em nuvem (grupo Segurança) | Executar a CLI de um provedor no seu servidor, ou colar instâncias em JSON para salvá-las como hosts. |
| Monitor Watchdog | A entrada Monitor Watchdog do grupo Automação (Pro) | Executar um comando no servidor a cada poucos segundos e receber um aviso quando a saída mudar. |
| Webhooks | A entrada Webhooks do grupo Automação (Pro) | Criar um link que, depois da sua confirmação, executa um comando em um host. |
| Pacotes | A ferramenta Pacotes (grupo Ferramentas Linux), somente em SSH | Listar, atualizar, instalar e remover pacotes apt do host. |
| Sincronização e equipes | A ferramenta Sincronização e equipes (grupo Configurações) | Fazer um backup local de hosts e snippets, e hospedar ou entrar em uma sala de equipe na sua rede. |
| Importar / Exportar | A ferramenta Importar / Exportar (grupo Configurações) | Copiar seus hosts como JSON e importar JSON, ~/.ssh/config, known_hosts ou CSV colando o texto. |
Hosts e conexão
Um host é um servidor salvo: onde conectar, quem você é e como prova isso. Seus hosts ficam salvos no dispositivo, por conta do PocketCode.
Hosts
A lista de servidores salvos, com o nome, o hostname:porta e a última conexão de cada um. Abra com Explorar hosts, + na barra de abas ou a ferramenta Hosts.
Você pode
- Busque com Buscar hosts…: ela procura no nome, no hostname e nas tags.
- Filtre com os chips de grupo: Todos e um chip por grupo e subgrupo (o chip de um grupo inclui seus subgrupos). Gerenciar grupos abre o gerenciador de grupos.
- Com um grupo selecionado, Conectar todos (N) conecta todos os hosts dele e dos seus subgrupos.
- Os hosts com estrela ficam em Favoritos e os demais em Todos os hosts.
- Toque em um host para conectar. O menu de cada cartão tem Conectar, Favoritar, Editar e Excluir.
- Adicionar host abre o formulário; Rápido abre Conexão rápida.
- No gerenciador de grupos, Novo grupo pede um Nome, um Grupo pai, um Tema (herdado pelos hosts) e Gravar sessões automaticamente: os hosts desse grupo e dos subgrupos iniciam o registro da sessão (o selo LOG) assim que conectam. Excluir grupo deixa os hosts dele sem grupo.
Você não pode, e por quê
- Salvar um segundo host no Grátis, por qualquer porta: Adicionar host, Conexão rápida, as importações (JSON, SSH config, CSV) e a importação de instâncias de nuvem param em 1 host salvo e mostram o aviso Terminal Pro. O limite é 1 host salvo.Pro
- Dar a um grupo inteiro um proxy, uma identidade padrão ou variáveis de ambiente: em um grupo só dá para definir o tema e Gravar sessões automaticamente.Ainda não
Novo host e Editar host
O formulário guarda sua senha ou sua chave, por isso é protegido contra capturas e gravação de tela. Salvar é habilitado quando Hostname e Usuário estão preenchidos e a porta está entre 1 e 65535.
Você pode
- Conexão: um Rótulo opcional, o Hostname, a Porta (22 por padrão) e o Usuário.
- Autenticação → Método de autenticação: Senha, Par de chaves ou Teclado interativo. A senha é guardada criptografada; ao editar um host o campo mostra (inalterada).
- Com Par de chaves, escolha uma chave de Chaves SSH (as vinculadas ao dispositivo são marcadas), ou escolha Colar manualmente e cole a chave privada, com a Senha da chave se ela tiver uma. O campo da senha não aparece para chaves vinculadas ao dispositivo.
- Com Teclado interativo, o servidor pede o que precisar durante a conexão, por exemplo um código de uso único: Você será solicitado durante a conexão.
- Usar identidade preenche o usuário e a credencial a partir de uma identidade salva; Salvar como identidade salva os atuais. Uma identidade é um modelo copiado para o host, não um vínculo ativo: mudá-la depois não altera os hosts que já a usaram.
- Organização: escolha um Grupo e adicione Tags separadas por vírgulas.
- Avançado: Proxy / Jump host com um proxy SOCKS5 ou HTTP (host e porta); Host de salto, outro host salvo usado como bastião, até 3 saltos, que aparece quando você tem outro host salvo; e a chave Encaminhamento do agente.
- Escolha uma Cor e marque o host como favorito com a estrela.
Você não pode, e por quê
- Definir um comando de inicialização ou redirecionamentos de porta salvos em um host: o formulário não tem campos para isso, e salvar um host pelo formulário apaga os dois.Ainda não
- Usar o chip SSH Jump Host sozinho: ele é mantido por causa de dados antigos e não faz nada. O salto de verdade é a lista Host de salto.Ainda não
Conexão rápida
Para um servidor que você não salvou. Digite o endereço, informe a senha e conecte.
Você pode
- Digite
user@hostouuser@host:portaem String de conexão; um endereço IPv6 vai entre colchetes,user@[::1]:22. Uma prévia mostra o usuário, o host e a porta. - Digite a senha em Senha (opcional) e toque em Conectar. O botão fica desativado até o texto conter um
@. - O host é salvo em Hosts antes de conectar, se o plano tiver espaço. No Grátis, com 1 host já salvo, ele conecta mesmo assim, mas o novo host não é salvo e o aviso Terminal Pro abre.
Você não pode, e por quê
- Conectar com uma chave ou com um código de uso único: a Conexão rápida sempre cria um host de Senha, e sem senha a aba mostra
Error: No password stored for this host. Use Adicionar host para chaves e Teclado interativo.Ainda não
Verificar chave do host e A chave do host mudou!
Na primeira vez que você conecta a um servidor, e sempre que a chave dele muda, a conexão espera a sua decisão. O PocketCode lembra as chaves em que você confiou (confiança no primeiro uso).
Você pode
- Leia o Host, o Tipo de chave e o Fingerprint (no formato
SHA256:) e compare com o que o seu servidor mostra. - Um servidor novo mostra Verificar chave do host: Confiar e conectar salva a chave e continua; Rejeitar cancela.
- Se a chave salva e a do servidor forem diferentes, o diálogo se chama A chave do host mudou!, mostra a Impressão digital anterior e avisa de um possível ataque man-in-the-middle. Continue só se souber que o servidor foi reinstalado ou reconfigurado.
- Se você não responder em 60 segundos, a conexão é recusada.
Você não pode, e por quê
- Ver ou remover a lista de servidores confiáveis: não existe tela para isso. Você pode adicionar entradas importando um arquivo
known_hosts.Ainda não
Desafio de autenticação
Aparece com a autenticação Teclado interativo quando o servidor pede algo, como um código de uso único. O diálogo é protegido contra capturas de tela.
Você pode
- Responda a cada solicitação no campo Resposta N correspondente (o texto fica oculto ou visível conforme o servidor pedir) e toque em Enviar. Cancelar desiste da tentativa.
- Você tem 120 segundos para responder.
Você não pode, e por quê
- Salvar as respostas: toda conexão pergunta de novo.De propósito
Chaves SSH
Chaves SSH é a lista de pares de chaves com os quais você pode entrar. Abra pela ferramenta Chaves SSH (grupo Segurança do menu de ferramentas). Para usar uma chave em um host, escolha Par de chaves no formulário do host.
Chaves SSH
Um cartão por chave: rótulo, tipo e tamanho, impressão digital e chave pública.
Você pode
- Identifique as chaves vinculadas ao dispositivo pelo selo Vinculada ao dispositivo.
- Importar um arquivo de chave privada do celular com o seletor de arquivos do sistema; o nome do arquivo vira o rótulo.
- Gerar chave cria um novo par (próxima seção).
- Copiar chave pública coloca a chave pública na área de transferência.
- Implantar acrescenta a chave pública a
~/.ssh/authorized_keysno servidor da sessão em foco, criando a pasta com modo 700 e o arquivo com modo 600. O botão aparece enquanto uma sessão está aberta. A aba mostra[Key deployed to authorized_keys]depois que o comando é executado; o PocketCode não verifica o resultado dele, então teste a chave em seguida. - Excluir remove a chave; no caso de uma chave vinculada ao dispositivo, também a apaga do Android Keystore.
Você não pode, e por quê
- Copiar ou implantar a chave pública de uma chave importada: o app não guarda chave pública para importações (o cartão mostra
importedno lugar da impressão digital). Uma chave importada só assina conexões.Ainda não - Exportar a chave privada de uma chave vinculada ao dispositivo: ela nunca sai do Android Keystore.De propósito
Gerar chave
Abre em Gerar chave na lista de chaves.
Você pode
- Preencha o Rótulo da chave e escolha um Tipo de chave com seu Tamanho em bits: RSA (2048 ou 4096, com 4096 pré-selecionado), ED25519 (256), ECDSA (256, 384 ou 521), DSA (1024) ou DEVICE-BOUND.
- Adicione uma Passphrase opcional à chave privada (não vale para DEVICE-BOUND).
- DEVICE-BOUND cria uma chave ECDSA P-256 dentro do Android Keystore. A chave privada não pode ser exportada, copiada nem sincronizada; só a chave pública sai do celular. Exigir biometria/PIN recente para assinar vem ativado por padrão: a chave só assina nos 30 segundos seguintes à sua autenticação com biometria ou PIN do dispositivo. O PocketCode não mostra um aviso próprio ao conectar.
Você não pode, e por quê
- Usar uma chave vinculada ao dispositivo em outro celular ou restaurá-la a partir de um backup.Dispositivo
A sessão SSH e suas ferramentas
Um host conectado é uma aba na tela SSH. Uma aba remota que não está conectada mostra uma barra de status com Desconectar ou Reconectar.
Abas, reconexão e fechamento
Cada aba é uma conexão. A tentativa de conexão expira após 15 segundos, e a conexão é verificada a cada 30 segundos.
Você pode
- Um toque longo em uma aba abre Renomear, Duplicar sessão (para abas que vieram de um host salvo) e Fechar outros separadores (quando há mais de uma).
- Fechar uma aba que ainda está conectada pergunta Fechar sessão ativa?: fechar desconecta e encerra os redirecionamentos de porta dela. Fechar outros separadores sempre pergunta.
- Quando a rede volta, o PocketCode reconecta sozinho as sessões que caíram. A opção fica em Configurações → Terminal → Reconexão automática do terminal, ativada por padrão. A aba mostra
[Network connection lost]e depois[Network restored — reconnecting…].
Você não pode, e por quê
- Ter mais de uma sessão aberta no Grátis: abrir outra aba, conectar um segundo host, Duplicar sessão e Shell multiplexado mostram o aviso Terminal Pro. O limite é 1 sessão SSH ativa; um shell local na tela Terminal é contado à parte.Pro
- Manter as sessões rodando em segundo plano sem ajuda do Android: ele pode pausar ou derrubar as sessões SSH e os redirecionamentos de porta quando você troca de app, a menos que o PocketCode fique fora da otimização de bateria. O app pergunta uma vez: Mantenha as sessões SSH ativas em segundo plano → Abrir configurações.Dispositivo
Shell multiplexado e Broadcast
Os dois ficam no menu de ferramentas (a chave inglesa), em Sessão, e os dois exigem uma sessão conectada.
Você pode
- Shell multiplexado abre outro shell na mesma conexão SSH, em uma nova aba chamada
<host> (mux). - Broadcast envia cada comando que você digita para todas as abas conectadas ao mesmo tempo; as abas de shell local que estiverem conectadas também o recebem. Enquanto está ativo, o selo BROADCAST aparece; toque em Broadcast desativado para parar.
Você não pode, e por quê
- Usar o Broadcast no Grátis: ele mostra o aviso Terminal Pro.Pro
- Chegar ao Broadcast e ao Shell multiplexado pelo painel fixo em uma tela larga: eles existem só no menu de ferramentas, que o layout fixo esconde. Deixe a janela mais estreita que cerca de 660 dp, ou ative a divisão de tela (Pro), para o menu voltar.De propósito
As ferramentas
A tela SSH tem 32 ferramentas. No menu de ferramentas elas se agrupam em sete categorias; o painel fixo as mostra em uma única faixa. As que são compartilhadas com o shell local estão na página Terminal Linux.
| Categoria | Ferramentas na tela SSH |
|---|---|
| Conexão | Conexão rápida, Hosts, Navegador SFTP, Encaminhamento de Portas, Partilha o teu servidor, Serial / UART, VNC / RDP, Fila de transferências |
| Sessão | Dividir horizontal / Dividir vertical (Pro), Shell multiplexado, Broadcast, Histórico de comandos, Gerenciador de aliases, Tarefas em segundo plano, Copiar saída, Limpar terminal, Iniciar gravação |
| Ferramentas Linux | Gerenciador de arquivos, Processos, Rede, Pacotes, Uso de disco, Informações do sistema, Variáveis de ambiente, Painel Git |
| Snippets | Todos os Snippets e oito atalhos de categoria |
| Automação | Macros de teclado, Scripts rápidos, Regras Expect, Monitor Watchdog, Webhooks |
| Segurança | Chaves SSH, Provedores em nuvem, Perfis |
| Configurações | Registros de sessão, Sincronização e equipes, Importar / Exportar, Botões de volume: DESATIVADO / Botões de volume: ATIVADO |

SFTP
O SFTP trabalha sobre a sessão em foco, então precisa de um host conectado. Abra o Navegador SFTP pela faixa de ferramentas ou pelo grupo Conexão do menu de ferramentas. O único envio que funciona hoje pela interface é o Anexar arquivo, descrito por último.
Navegador SFTP
Começa na raiz / do servidor.
Você pode
- Navegue pelo servidor: pastas primeiro, depois arquivos, cada linha com suas permissões e, nos arquivos, o tamanho. Toque em uma pasta para abri-la e use a seta de voltar para subir.
- Nova pasta e, no menu Mais opções de uma linha, Renomear ou Excluir.
- Segure uma linha para começar a selecionar, toque para adicionar mais e exclua todas juntas. O app pergunta Excluir N itens selecionados? Isso não pode ser desfeito. Cada item é excluído separadamente, então uma falha não interrompe os demais.
- Visualização de dois painéis muda para o layout de dois painéis.
Você não pode, e por quê
- Baixar, enviar ou abrir um arquivo por esta visualização: tocar em um arquivo não faz nada, só as pastas abrem.Ainda não
- Excluir uma pasta que ainda tem arquivos: as pastas são removidas com a chamada
rmdirdo SFTP, então esvazie-as antes.De propósito - Ver por que uma operação falhou: os erros não são exibidos. Uma pasta que não pode ser lida parece vazia (Este diretório está vazio), e um renomear ou excluir que falha deixa a lista como estava.Ainda não
Visualização de dois painéis
SFTP — Arrastar e soltar mostra o celular e o servidor lado a lado. A dica abaixo do título diz Pressione e segure para arrastar.
Você pode
- O painel Local começa na pasta que guarda seus projetos; o painel Remoto começa em
/. Toque em uma pasta para abri-la e use a seta no alto de um painel para subir. - Volte com Visualização de painel único.
Você não pode, e por quê
- Copiar um arquivo entre os painéis arrastando: a tela oferece isso, mas o soltar ainda não está ligado à transferência, então nada é copiado.Ainda não
Fila de transferências
Uma lista de transferências com barra de progresso, Cancelar e Limpar concluídas. Quando está vazia, mostra Nenhuma transferência ativa.
Você pode
- Ver as transferências na fila (À espera, Concluída, Falhou), cancelar uma ou limpar as finalizadas com Limpar concluídas.
Você não pode, e por quê
- Adicionar uma transferência à fila: nada no app envia arquivos para ela por enquanto, então ela sempre mostra Nenhuma transferência ativa.Ainda não
Enviar um arquivo do celular
O botão Anexar arquivo da barra de entrada, em uma sessão SSH.
Você pode
- Toque em Anexar arquivo e escolha um arquivo: ele é enviado por SFTP para
/tmp/<file name>no servidor, e o caminho é digitado na barra de entrada, pronto para o próximo comando.
Você não pode, e por quê
- Escolher o destino ou manter um arquivo existente: o arquivo sempre vai para
/tmp, e um com o mesmo nome é sobrescrito.De propósito

Encaminhamento de portas
O encaminhamento de portas leva tráfego pela conexão SSH. As regras pertencem à sessão em foco. Abra Encaminhamento de Portas pela faixa de ferramentas ou pelo grupo Conexão do menu de ferramentas; ele exige uma sessão conectada.
Redirecionamento de portas
Lista as regras da sessão em foco (N regras).
Você pode
- Adicionar regra abre um formulário: Tipo (Local (L), Remoto (R) ou Dinâmico), Rótulo, Porta local, Host remoto (pré-definido como
localhost), Porta remota e Iniciar automaticamente. - Local (L) escuta em uma porta do seu celular e envia o tráfego pelo servidor até a Porta remota do Host remoto, como o servidor o enxerga. Por exemplo, acessar um banco de dados do servidor por
localhost:5432. - Remoto (R) escuta na Porta remota do servidor e envia o tráfego para a Porta local do Host remoto, alcançada a partir do celular (
localhostpor padrão). Por exemplo, expor um servidor de desenvolvimento que roda no celular. - Cada regra mostra Ativo ou Parado; inicie, pare ou exclua.
- Fechar a aba ou desconectar encerra os redirecionamentos da sessão.
Você não pode, e por quê
- Ter mais de 1 regra por vez no Grátis (contada na sessão em foco).Pro
- Usar Dinâmico como proxy SOCKS: a regra aparece como Proxy SOCKS e registra
SOCKS5 proxy on localhost:N, mas o app a implementa como um simples redirecionamento dessa porta paralocalhostno mesmo número de porta, não como um proxy SOCKS5.Ainda não - Manter as regras entre sessões: elas não são salvas com o host, então Iniciar automaticamente não tem o que iniciar na próxima conexão.Ainda não
Área de trabalho remota (VNC e RDP)
A ferramenta VNC / RDP (grupo Conexão) abre uma lista de conexões de área de trabalho remota salvas. Hoje ela conecta, mas não consegue mostrar a tela remota.
VNC / RDP
A tela se chama Área de trabalho remota. Alguns botões (Conectar, Guardar, Eliminar) estão em espanhol, seja qual for o idioma do app.
Você pode
- Nova conexão: protocolo VNC (porta 5900) ou RDP (3389), um rótulo, host, porta, um usuário (RDP) e uma senha, um nível de qualidade e Somente visualização.
- Conectar abre uma conexão direta com aquele host e porta (sem passar pelo SSH), faz o handshake VNC (sem autenticação ou com uma senha VNC) e mostra
Connected:com o nome do servidor e o tamanho da tela em uma nova aba, além de qualquer sinal sonoro ou texto de área de transferência que o servidor enviar.
Você não pode, e por quê
- Ver ou controlar a tela remota: a conexão lê as atualizações de tela e as descarta, e não há visualização nem entrada de mouse ou teclado.Ainda não
- Usar RDP: escolher RDP executa o mesmo código de VNC e não existe cliente RDP.Ainda não
Serial / UART
A ferramenta Serial / UART (grupo Conexão) é para adaptadores USB-serial: placas Arduino, roteadores, dispositivos IoT.
Serial / UART
Subtítulo: Conexão por porta serial USB (Arduino, roteadores, IoT).
Você pode
- Veja os Dispositivos detectados, os dispositivos USB que o Android informa.
- Adicionar configuração: Dispositivo (vazio = auto), Baud (115200 por padrão), Bits (8), Stop (1) e um menu de paridade chamado Paridad (Ninguna, Impar, Par, Mark, Space). Esse menu e os botões Guardar e Cancelar estão em espanhol, seja qual for o idioma do app.
- O botão de reproduzir de uma configuração salva conecta: ele localiza o dispositivo pela API de host USB do Android, abre a interface de dados serial dele e define a codificação da linha; a aba mostra
Connected to …quando dá certo. - Na primeira vez, o próprio diálogo do Android pede permissão para usar o dispositivo USB (a aba mostra
Requesting USB permission for <device>…). Permita e a conexão segue; o PocketCode espera sua resposta por até 60 segundos.
Você não pode, e por quê
- Conectar depois de recusar a permissão de USB, ou depois de 60 segundos sem responder ao diálogo: a aba mostra
USB permission not granted for <device>e a sessão termina em erro. Toque em reproduzir de novo para tentar outra vez.Dispositivo - Usar um adaptador que não expõe uma interface de dados CDC ou específica do fabricante com endpoints bulk: a aba mostra
USB device does not have expected CDC serial endpoints.Dispositivo
Provedores em nuvem
Provedores em nuvem (grupo Segurança) mostra seis chips: Amazon AWS, Google Cloud, Microsoft Azure, DigitalOcean, Kubernetes e Docker. Ele não faz chamadas a APIs de nuvem e não usa as contas que você conecta em Platform Services.
Provedores em nuvem
A tela se chama Serviços em nuvem.
Você pode
- Toque em um chip para executar a CLI desse provedor no servidor da sessão em foco (
aws ec2 describe-instances,gcloud compute instances list,az vm list,doctl compute droplet list,kubectl get pods,docker ps). A CLI precisa estar instalada no servidor. A aba mostra[Cloud discovery (AWS): N bytes received]. - Importar instâncias (JSON): cole um array JSON como
[{"provider":"AWS","name":"…","publicIp":"…"}]. Toda instância com endereço IP é salva como host (usuárioroot, porta 22, com a tag do provedor) e aparece em Instâncias (N) com Conectar. No Grátis, só viram hosts as que cabem no limite de 1 host, mas toda instância continua aparecendo em Instâncias (N); para as demais o aviso Terminal Pro abre.
Você não pode, e por quê
- Importar instâncias automaticamente: a descoberta só mostra quantos bytes a CLI devolveu e não transforma a saída em instâncias. O JSON precisa ser colado.Ainda não
- Conectar a uma instância importada sem adicionar credenciais antes: os hosts importados são hosts de Senha sem senha salva. Edite o host para informar uma senha ou escolher uma chave.Ainda não
Watchdog e webhooks
As duas ferramentas ficam no grupo Automação e exigem um host conectado. Criar qualquer uma delas exige o Pro: no Grátis você vê o aviso Terminal Pro.
Monitor Watchdog
Executa um comando no servidor em um intervalo fixo e avisa quando a saída não é a esperada.
Você pode
- Adicionar watchdog: Rótulo, Comando (pré-definido como
systemctl is-active nginx), Saída esperada (pré-definida comoactive) e Intervalo (segundos) (pré-definido em 60). - Inicie ou pare um monitor com a chave dele, ou exclua-o. A primeira verificação roda depois de um intervalo.
- Cada verificação executa o comando na sessão que estava em foco quando você iniciou o monitor. Se a saída não contiver o texto esperado (maiúsculas e minúsculas são ignoradas), a aba mostra
⚠ Watchdog alert: <command> → <output>e o monitor é marcado como falho.
Você não pode, e por quê
- Criar um watchdog no Grátis.Pro
- Receber uma notificação do sistema: os alertas são linhas na aba do terminal, e os monitores só funcionam enquanto o app está em execução.De propósito
- Vincular um monitor a um único host: ele roda na sessão que estiver em foco quando você o inicia.De propósito
Webhooks
Um webhook é um link que pede ao PocketCode para executar um comando salvo em um host salvo. Outro app pode abri-lo, por exemplo um launcher ou um app de automação.
Você pode
- Criar webhook: Nome, Selecionar host e Comando. Cada webhook mostra seu link,
pocketcode://terminal/webhook/<id>?secret=<secret>, mascarado na tela e com um botão de copiar, além de uma chave Ativo / Inativo, N execuções e Excluir. - Quando algo abre o link, o PocketCode confere o id e o segredo. Só se o webhook estiver ativo e os dois conferirem ele pergunta Executar a automatização? (Um link pediu para executar a regra «X» em HOST.). Executar conecta ao host e envia o comando; Cancelar não faz nada. Um segredo errado não recebe resposta nenhuma.
Você não pode, e por quê
- Criar um webhook no Grátis.Pro
- Executar um webhook sem supervisão: todo acionamento pede sua confirmação antes.De propósito
- Acionar um webhook pela web: existe apenas o link
pocketcode://. O app não abre uma porta de escuta no seu celular para executar comandos nos seus servidores.De propósito
Gerenciador de pacotes
Pacotes (grupo Ferramentas Linux) aparece só na tela SSH, porque o shell local não tem gerenciador de pacotes.
Pacotes
Subtítulo: System packages, em inglês seja qual for o idioma do app. Toda ação é digitada na sessão, então você vê a saída dela no terminal.
Você pode
- Liste os pacotes instalados no host (ele lê
pkg list-installede, se falhar,dpkg -l, mantendo os instalados), busque com Buscar pacotes… e atualize. - Atualizar todos (
apt update && apt upgrade -y), Listar todos, Limpar (apt autoclean) e Instalar (pergunta Digite o nome do pacote: e executaapt install <name> -y). - Em um pacote: as informações dele (
apt show) e a remoção (apt remove <name> -y).
Você não pode, e por quê
- Usar outro gerenciador de pacotes (yum, dnf, apk…): os comandos são fixos em
apt.Ainda não - Executar comandos com
sudoautomaticamente: eles rodam como o seu usuário SSH, exatamente como digitados, então em um servidor onde esse usuário não é root podem falhar com erro de permissão.De propósito
Sincronização e salas de equipe
Sincronização e equipes (grupo Configurações) tem duas metades, Sincronizar e Equipes. Nenhuma exige o Pro.
Sincronizar
A tela se chama Sincronização e equipe.
Você pode
- Sincronizar gera um backup dos seus hosts, dos seus snippets e de algumas configurações do terminal; as chaves em Dados a sincronizar escolhem o que entra. Última sincronização mostra quando ele rodou.
- Conexões na sua conta (um caminho separado deste backup): com Ativar sincronização ligado no diálogo Sincronização de ajustes das Configurações (Cloud Sync, um recurso Pro) e Conexões (SSH/DB) marcada, salvar, editar, favoritar ou excluir um host envia os dados dele para a sua conta do PocketCode: nome, endereço, porta, usuário, tipo de autenticação, tags, favorito, grupo, proxy e a configuração de encaminhamento de agente. Senhas, chaves, senhas de chave e o comando de inicialização ficam no celular. Hosts que chegam pelas importações de JSON, SSH config ou CSV não são enviados. A mesma caixa também leva as conexões do módulo de Banco de Dados, mas só com o seu próprio conjunto, mais curto, de dados (nome, host, porta, motor e grupo): nunca usuário nem senha. Com o Cloud Sync desligado, ou essa caixa desmarcada, nada é enviado.
- Criptografia end-to-end → Ativar criptografia pede uma Senha mestre e criptografa o backup com AES-256-GCM, com uma chave derivada da senha (PBKDF2, 100.000 rodadas). Não pode ser recuperada se esquecida.
Você não pode, e por quê
- Recuperar em outro dispositivo os hosts sincronizados: o app guarda a lista que baixa, mas nada a transforma em hosts.Ainda não
- Enviar este backup a outro dispositivo ou a uma nuvem: o backup é gravado em um arquivo dentro do app (
terminal_sync_backup.json) e nada é enviado; o app não tem como restaurar a partir dele.Ainda não - Incluir chaves SSH: a chave Chaves SSH existe, mas o backup nunca contém chaves.Ainda não
Equipes
As salas de equipe permitem que pessoas na mesma rede entrem em uma sala com um código.
Você pode
- Hospedar sala: dê a ela um Nome da sala e compartilhe o Código de 6 dígitos que ela mostra.
- Entrar em uma sala: as salas próximas são encontradas na rede local, ou você digita o Código de 6 dígitos. Quem hospeda vê Nova solicitação (N quer entrar) e toca em Aceitar ou Rejeitar.
- A lista de membros mostra o papel de cada um: Somente leitura, Leitura e escrita ou Admin. Quem hospeda pode mudar papéis e remover membros; qualquer pessoa pode Sair da sala e quem hospeda pode Encerrar sala.
- O tráfego entre os dispositivos é criptografado (acordo de chaves ECDH e AES-GCM). No Android 13 e posteriores, na primeira vez que você hospeda uma sala, procura salas ou entra em uma, o Android pede a permissão de dispositivos próximos (rede local); até você concedê-la, essas três ações ficam bloqueadas.
Você não pode, e por quê
- Compartilhar hosts ou snippets em uma sala: a dica diz para hospedar ou entrar em uma sala para compartilhá-los ao vivo, mas hoje só funcionam membros e papéis.Ainda não
- Usar uma sala fora da sua rede local: a descoberta e a conexão são só pela LAN.Precisa de rede
- Manter uma sala depois que o app reinicia: a sala existe só enquanto está ativa.De propósito
Importar e exportar
Importar / Exportar (grupo Configurações) leva sua lista de hosts entre dispositivos ou a traz de outras ferramentas. Funciona com texto que você copia e cola.
Exportar configuração
Toque em Exportar e depois em Copiar.
Você pode
- O JSON contém seus hosts (nome, endereço, porta, usuário, tipo de autenticação, tags, cor, favorito e comando de inicialização), seus grupos (nome, cor, ícone) e seus próprios snippets, não os predefinidos.
Você não pode, e por quê
- Exportar senhas, chaves ou configurações: elas nunca estão no JSON. Importá-lo de volta recria os grupos, mas não coloca os hosts de volta neles.Ainda não
- Criptografar a exportação com uma senha, salvá-la como arquivo ou mostrá-la como QR code: o texto é puro e copiar e colar é o único caminho de entrada e saída.Ainda não
Importar configuração
Escolha o formato, Cole o texto e toque em Importar. O resultado aparece como N itens importados. No Grátis, a importação para nos limites do plano: 1 host salvo (JSON, SSH config e CSV) e 10 snippets seus (JSON; os 98 predefinidos não contam). O que não cabe é deixado de fora, N itens importados conta só o que entrou e o aviso Terminal Pro abre. As entradas de known_hosts não têm limite.
Você pode
- JSON: a exportação acima. Hosts já salvos (mesmo hostname, porta e usuário) são ignorados.
- SSH config: cada bloco
Hostvira um host; blocos com padrão curinga, comoHost *, são ignorados. Um bloco comIdentityFilevira um host de Par de chaves sem a chave, eProxyJumpvira um Host de salto quando aponta para um host que existe. - known_hosts: entradas em texto simples viram servidores confiáveis; entradas com hash (o padrão do OpenSSH) não podem ser recuperadas e são ignoradas.
- CSV: precisa de uma linha de cabeçalho. Colunas reconhecidas:
label(ouname),hostname(ouhost,address),port,username(ouuser) egroup(oufolder); só o hostname é obrigatório. Um grupo é encontrado pelo nome ou criado.
Você não pode, e por quê
- Importar de um arquivo ou de um QR code: a tela aceita apenas texto colado.Ainda não
- Importar senhas ou chaves: nenhum formato as carrega, então os hosts importados precisam de credenciais adicionadas em Editar host.De propósito
Grátis e Pro
Estas são as verificações de plano que o app faz na parte SSH, tiradas das definições de plano (UserPlan, PlanFeature). O que não está listado não tem verificação de plano.
| Recurso | Grátis | Pro |
|---|---|---|
| Hosts salvos (formulário Adicionar host, Conexão rápida, importações e importação de instâncias de nuvem) | 1 | Sem limite |
| Sessões ativas ao mesmo tempo na tela SSH (abas SSH, VNC / RDP, Shell multiplexado, Duplicar sessão; a serial usa a vaga da tela Terminal) | 1 | Sem limite |
| Regras de redirecionamento de porta (na sessão em foco) | 1 | Sem limite |
| Broadcast | Não incluído: mostra o aviso Terminal Pro | Incluído |
| Monitor Watchdog (criar um) | Não incluído: mostra o aviso Terminal Pro | Incluído |
| Webhooks (criar um) | Não incluído: mostra o aviso Terminal Pro | Incluído |
| Navegador SFTP, Chaves SSH (inclusive as vinculadas ao dispositivo), verificação de chave de host, Provedores em nuvem, Pacotes, Sincronização e equipes | Incluído (sem verificação de plano) | Incluído |
Privacidade e segurança
- Onde ficam seus segredos. Senhas, chaves privadas (geradas, importadas ou coladas) e senhas de chave são guardadas nas preferências criptografadas do Android: AES-256-SIV para os nomes e AES-256-GCM para os valores, com a chave mestra mantida pelo Android Keystore. Elas ficam por conta do PocketCode, então entrar com outra conta no mesmo celular não as expõe. Excluir um host remove a senha, a chave e a senha da chave dele.
- O que essa camada não cobre. Nomes de host, usuários, grupos, tags e as impressões digitais dos servidores confiáveis ficam no armazenamento privado do app, sem a criptografia extra.
- Chaves vinculadas ao dispositivo. A chave privada é gerada dentro do Android Keystore e não pode ser exportada, copiada nem sincronizada. Só a chave pública sai do celular, e ela não está em nenhuma exportação ou backup.
- Telas ocultas de capturas. O formulário do host, o diálogo de identidade e o desafio de autenticação são marcados como seguros: o Android bloqueia capturas e gravação de tela enquanto eles estão abertos.
- Servidores. As conexões vão do seu celular direto para o seu servidor; não há nenhum servidor do PocketCode no meio. Um servidor desconhecido sempre precisa da sua decisão, e a conexão é recusada se a impressão digital não puder ser lida ou se você não responder em 60 segundos. O SSH é tratado pela biblioteca JSch (versão 0.2.18).
- Analytics. Se você ativou Análises de Uso, o app registra que uma conexão foi tentada, o tipo de autenticação e quanto tempo levou. Nomes de host, usuários, senhas e chaves nunca fazem parte disso.
- Exportação e backup de sincronização. O JSON exportado e o backup local contêm endereços de host e usuários e não são criptografados, a menos que você defina uma senha mestre para o backup; nenhum dos dois contém senhas ou chaves.
- Conexões no Cloud Sync. Só com o Cloud Sync ligado e Conexões (SSH/DB) marcada, o nome, o endereço, a porta, o usuário, o tipo de autenticação, as tags, o favorito, o grupo, o proxy e a configuração de encaminhamento de agente de um host vão para a sua conta do PocketCode; senhas, chaves, senhas de chave e comandos de inicialização nunca vão. A mesma caixa também sincroniza as conexões do módulo de Banco de Dados, só com o nome, host, porta, motor e grupo delas.
- Webhooks. O link de um webhook contém o segredo dele, então mantenha-o privado. Abri-lo nunca executa nada sem a sua confirmação.
- Chat de IA. As ferramentas SSH dele só agem em hosts que você conectou em uma aba e, por padrão, pedem aprovação antes.
- Sem bloqueio próprio. O Terminal não tem PIN nem bloqueio biométrico próprio; ele depende da tela de bloqueio do celular. Uma chave vinculada ao dispositivo pode exigir biometria ou o PIN do dispositivo para assinar.
- VNC em texto puro. O VNC conecta por TCP puro, fora do SSH. Use-o só em redes em que você confia.
Limitações
O que a parte SSH não faz hoje, e por quê. Uma linha marcada como Pro é um limite de plano, Ainda não significa que o recurso não está pronto, De propósito é uma escolha deliberada e Dispositivo é um limite do celular ou do Android.
- Abrir uma conexão Telnet: o app contém um cliente Telnet, mas nada o abre (nem a Conexão rápida, nem o formulário do host).Ainda não
- Ver ou controlar uma área de trabalho remota (VNC, RDP): a conexão funciona, mas a tela não é desenhada e não há entrada. O RDP executa o código de VNC.Ainda não
- Baixar, enviar ou editar arquivos remotos pelas visualizações SFTP, copiar arrastando entre painéis ou preencher a fila de transferências. Só o Anexar arquivo envia, para
/tmp.Ainda não - Usar o encaminhamento Dinâmico como proxy SOCKS5, ou manter as regras de redirecionamento de porta depois que a sessão termina.Ainda não
- Definir pelo formulário um comando de inicialização ou redirecionamentos de porta salvos em um host, ou dar a um grupo um proxy, uma identidade ou variáveis de ambiente.Ainda não
- Usar a Conexão rápida com uma chave ou com um código de uso único: ela sempre cria um host de Senha.Ainda não
- Obter uma chave pública a partir de uma chave privada importada, ou listar e remover chaves de host confiáveis.Ainda não
- Usar um gerenciador de pacotes diferente do
apt, ou importar instâncias de nuvem sem colar JSON.Ainda não - Enviar o backup de Sincronização e equipes a uma nuvem ou outro dispositivo, recuperar hosts em outro dispositivo pelo Cloud Sync, compartilhar hosts ou snippets em uma sala de equipe, criptografar uma exportação ou importar de um arquivo ou de um QR code.Ainda não
- Chegar ao Broadcast e ao Shell multiplexado pelo painel fixo em uma tela larga: eles estão só no menu de ferramentas.De propósito
- Encadear mais de 3 hosts de salto.De propósito
- Escolher ou inspecionar algoritmos de troca de chaves, de cifra ou de chave de host: são usados os padrões da biblioteca SSH e não há configuração. Esta página não faz nenhuma afirmação sobre troca de chaves pós-quântica.De propósito
- Usar mais de 1 host salvo, 1 sessão ou 1 regra de redirecionamento de porta por vez no Grátis; usar Broadcast, Monitor Watchdog ou Webhooks no Grátis.Pro
- Manter as sessões ativas em segundo plano sem excluir o PocketCode da otimização de bateria.Dispositivo
- Usar salas de equipe fora da sua rede local.Precisa de rede
Solução de problemas
Error: No password stored for this host
O host usa Senha, mas nenhuma está salva. Abra Hosts → Editar e digite-a em Autenticação. Isso também acontece depois de uma Conexão rápida sem senha e com hosts importados, que chegam sem credenciais.
Error: No private key stored for this host
O host usa Par de chaves, mas não tem chave. Em Editar host, escolha uma em Chave ou escolha Colar manualmente e cole-a. Os hosts importados de um SSH config com IdentityFile chegam assim.
Error: Authentication failed
O servidor rejeitou as credenciais; a aba também mostra [Connection failed: Authentication failed]. Confira o usuário, a senha ou a chave e a senha da chave. Se o servidor pedir um código de uso único, defina Método de autenticação como Teclado interativo. Com uma chave vinculada ao dispositivo que exige biometria ou PIN, autentique-se e conecte de novo logo em seguida: fora da janela de 30 segundos a chave não assina nada e o servidor rejeita a tentativa.
Error: Connection timed out / Error: Connection refused
Nada respondeu em 15 segundos, ou a porta está fechada. Confira o endereço e a porta (22 por padrão), se o celular tem acesso à rede e se o serviço SSH está em execução. Se o host usa um Proxy / Jump host, confira isso também.
Error: Unknown host key — trust the host and retry
A chave do servidor ainda não foi aprovada. Conecte de novo e, se a impressão digital conferir, responda a Verificar chave do host com Confiar e conectar.
A chave do host mudou!
A chave do servidor é diferente da que você aprovou: ele pode ter sido reinstalado ou reconfigurado, ou alguém pode estar interceptando a conexão. Compare o Fingerprint com a Impressão digital anterior e só toque em Confiar e conectar se souber por que ela mudou.
[Security] Could not verify host key fingerprint — connection refused.
O PocketCode não conseguiu ler a impressão digital do servidor e se recusa a continuar em vez de confiar em uma chave desconhecida. Tente conectar de novo.
[Network connection lost]
O dispositivo perdeu a conexão e a sessão terminou. Com a Reconexão automática do terminal ativada (Configurações → Terminal), a aba reconecta sozinha quando a rede volta e mostra [Network restored — reconnecting…]. Caso contrário, toque em Reconectar na barra de status.
Jump host chain deeper than 3 hops
Uma cadeia de Host de salto pode ter no máximo 3 saltos; encurte-a. Duas mensagens relacionadas: a cadeia faz um ciclo (mude o Host de salto de um dos hosts) e Jump host no longer exists (…) (o host de salto foi excluído; escolha outro).
Terminal Pro
Você chegou a um limite do Grátis: uma segunda sessão, um segundo host salvo por Adicionar host, pela Conexão rápida, por uma importação ou pela importação de instâncias de nuvem, uma segunda regra de redirecionamento de porta, Broadcast, Monitor Watchdog ou Webhooks. Continuar com plano básico fecha o aviso; Desbloquear Terminal Pro abre a tela de planos.
Este diretório está vazio (SFTP)
A pasta está vazia, ou não pôde ser lida, por exemplo por causa de permissões: o navegador não mostra erros, então uma pasta ilegível parece vazia.
[Error: file upload failed]
O Anexar arquivo não conseguiu enviar o arquivo para /tmp no servidor. Confira se a sessão ainda está conectada e se /tmp permite gravação.
Um host ou snippet não foi salvo (Conexão rápida, importações)
No Grátis o plano guarda 1 host salvo e 10 snippets seus (os 98 predefinidos não contam). A Conexão rápida ainda abre a sessão, mas não salva o host; as importações e a importação de instâncias de nuvem trazem só o que cabe, e N itens importados conta apenas isso. Toda vez que algo fica de fora, o aviso Terminal Pro abre. Exclua um para abrir espaço, ou desbloqueie o Terminal Pro.
USB permission not granted for … / No USB serial device found. Available: …
A primeira significa que você recusou o diálogo de permissão de USB do Android, ou não respondeu em 60 segundos; toque em reproduzir de novo e permita. A segunda significa que nenhum dispositivo USB conectado correspondeu; a mensagem lista o que o Android vê.
VNC server only offers unsupported security types (…); refusing to connect.
O PocketCode fala VNC apenas sem autenticação ou com senha VNC; servidores que exigem TLS ou outros tipos são recusados. VNC authentication failed significa que a senha foi rejeitada. Mesmo quando a conexão funciona, a tela remota não é desenhada.
Nenhum pacote encontrado
A lista fica vazia quando o host não tem pkg nem dpkg, ou quando a sessão não está conectada. As ações de pacote servem para hosts baseados em Debian e rodam como o seu usuário SSH, sem sudo.
Mantenha as sessões SSH ativas em segundo plano
O Android pode pausar ou derrubar as sessões SSH e os redirecionamentos de porta quando você troca de app, a menos que o PocketCode fique fora da otimização de bateria. Abrir configurações leva você à tela do sistema; Agora não deixa tudo como está.
O botão Conectar da Conexão rápida está desativado
Ele é habilitado quando o texto contém um @. Digite user@host, por exemplo [email protected].
Não foi possível importar o arquivo de chave
O arquivo estava vazio ou não pôde ser lido. Escolha o próprio arquivo da chave privada.
Próximos passos