SSH a partir do navegador

Com o SSH a partir do navegador, é possível usar o SSH para se conectar a uma instância de máquina virtual do Google Compute Engine no Console do Google Cloud Platform. Não é preciso instalar extensões do navegador nem sotfware adicional para usar esse recurso. O SSH no navegador é uma alternativa a outros métodos de conexão a uma instância.

Como conectar-se a uma instância de máquina virtual Linux

O Google Compute Engine gerenciará as chaves SSH para você sempre que você se conectar a uma instância do Linux a partir do navegador, criando e aplicando pares de chaves SSH quando necessário. Não é possível gerenciar as chaves SSH que são usadas para se conectar a partir do navegador. Em vez disso, o acesso do usuário para se conectar a partir do navegador é controlado pelos papéis do gerenciamento de identidade e acesso (IAM, na sigla em inglês). Os membros e papéis do IAM para um projeto podem ser visualizados na página "IAM" no Console do Google Cloud Platform:

Acessar a página "IAM"

Para se conectar por meio do navegador, é necessário ser um membro do projeto que seja um administrador da instância do Compute. A possibilidade de executar a instância como uma conta de serviço indica que você é um usuário de conta de serviço. Caso você não tenha acesso para se conectar por meio do navegador, peça ao proprietário para adicioná-lo ao projeto e conceder acesso a você.

Depois de receber o acesso, conecte-se a uma instância do Linux diretamente do navegador da Web no Console do GCP:

  1. No Console do GCP, acesse a página "Instâncias da VM".

    Acessar a página "Instâncias da VM"

  2. Na lista de instâncias de máquinas virtuais, clique em SSH na linha da instância com que você quer se conectar.

Também é possível abrir uma conexão SSH para uma instância, clicando em seu nome e em SSH na página de detalhes da instância.

Agora, você pode usar o terminal para executar comandos na instância do Linux. Ao terminar, use o comando exit para se desconectar da instância.

Ambientes compatíveis

O SSH a partir do navegador é compatível com o seguinte:

  • Navegadores: versão mais recente do Google Chrome, Firefox, Microsoft Edge, Microsoft Internet Explorer 11+ e Safari 8+. Observe que o Safari em modo de navegação privada não é compatível.
  • Configurações de máquina virtual: todas as imagens de máquina virtual do Linux disponíveis de maneira nativa no Google Cloud Platform.

Problemas conhecidos

  • Latência de inicialização: o tempo de conexão atual usando o SSH a partir do navegador é de 5 a 30 segundos. Versões mais recentes do Google Daemon em execução na instância de máquina virtual têm tempos de conexão mais próximos de 5 segundos. Caso contrário, espere tempos de conexão de até 30 segundos.

  • Novas instâncias de máquina virtual não disponíveis imediatamente: novas instâncias demoram algum tempo para inicializar antes que o SSH possa ser estabelecido. Se você não conseguir se conectar a uma nova instância, tente novamente após alguns minutos.

  • Desconexões intermitentes: no momento, não oferecemos um SLA específico para durações de conexão. Use multiplexadores de terminal, como tmux ou screen, para manter a janela de terminal aberta por um período prolongado.

  • Conexão a instâncias sem endereço IP externo: no momento, não é possível usar SSH por meio do navegador para se conectar a instâncias que não têm um endereço IP externo. Como alternativa, você pode usar esse recurso para se conectar com SSH a outra instância no projeto que tenha um endereço IP externo, como uma instância que execute o front-end. Em seguida, use o comando ssh -A INTERNAL_IP para fazer login na instância desejada usando o endereço IP interno dela. É preciso executar esse comando dentro de aproximadamente dois minutos depois de fazer login na primeira instância, antes que a chave de SSH expire e as credenciais de login não sejam mais válidas para conexões encaminhadas.

  • Ctrl+W fecha a janela: Ctrl+W, Ctrl+F4, Ctrl+Tab e outras combinações de teclas que funcionam como atalhos de teclado do navegador não são passadas pelo cliente SSH para o sistema de destino. Para enviar esses ou outros atalhos, clique no ícone do teclado no canto superior direito da janela. Se você usa o navegador Google Chrome, pode instalar a extensão "SSH para o Google Cloud Platform". A extensão melhora a experiência de console para o SSH a partir do navegador e do Google Cloud Shell dando acesso direto aos atalhos de teclado normalmente reservados pelo navegador, como CTRL-W.

Tratar a mensagem de erro "Não foi possível conectar na porta 22"

Você poderá ver esse erro nas seguintes condições:

  • A instância está inicializando e o sshd ainda não está em execução. Verifique se a instância terminou de inicializar antes de tentar novamente.

  • A instância não está executando sshd. O sshd é executado por padrão nas instâncias criadas a partir de imagens padrão do Compute Engine. Se você desativou manualmente o sshd ou configurou uma imagem personalizada que não está executando esse serviço, o SSH a partir do navegador não funcionará.

  • O sshd está escutando em uma porta diferente da qual você está se conectando. Por padrão, o SSH a partir do navegador se conecta à instância na porta 22. Se você estiver executando o sshd em uma porta personalizada, poderá se conectar àquela porta usando o item "Abrir na janela do navegador na porta personalizada" no menu suspenso do botão do SSH.

  • Não há regra de firewall que permita o acesso SSH à porta. O acesso SSH na porta 22 é ativado por padrão em todas as instâncias do Compute Engine. Se você desativou o acesso, o SSH a partir do navegador não funcionará. Se você executa o sshd em uma porta que não seja a 22, é preciso ativar o acesso a essa porta com uma regra personalizada de firewall.

  • A regra de firewall que permite o acesso SSH está ativada, mas não está configurada para permitir conexões dos serviços do Console do GCP. Os endereços IP de origem para sessões SSH baseadas no navegador são alocados dinamicamente pelo Console do GCP e podem variar de acordo com a sessão. Para que o recurso funcione, é preciso permitir conexões de qualquer endereço IP ou da faixa de endereços IP do Google, que você pode recuperar usando registros SPF públicos.

  • A instância está desligada. Verifique se a instância está em execução. Consulte este guia para obter informações sobre como resolver uma instância não íntegra.

Como resolver o erro "Não foi possível conectar. Tentando novamente…"

  • A instância não está executando o Google Daemon. O Google Daemon está instalado e em execução em todas as imagens padrão do Google Compute Engine. Imagens personalizadas não são compatíveis com o SSH a partir do navegador. É possível verificar se o deamon está em execução navegando para a página de saída do console serial e procurando linhas de saída cujo prefixo é a string accounts-from-metadata:. Se você está usando uma imagem padrão, mas não vê esses prefixos na saída do console serial, o daemon pode estar parado. Reinicialize a instância para reiniciar o daemon.

  • O disco de inicialização da instância não tem mais espaço livre. Quando a conexão é estabelecida, o daemon atualiza o arquivo ~/.ssh/authorized_keys com a chave SSH pública usada da sessão atual. Se o disco ficar sem espaço livre, a atualização falhará. Diagnostique essa condição verificando a instância na saída do console serial e procurando erros "Sem espaço livre". Veja a seguir alguns métodos que você pode tentar para recuperar esse erro:

    • Redimensione o disco permanente de inicialização da instância para aumentar o tamanho dele. Se a imagem do sistema operacional usada pela instância permitir o redimensionamento automático, essa será a opção mais fácil, já que o sistema operacional redimensionará automaticamente a partição raiz para corresponder ao novo tamanho depois que a instância for reiniciada.
    • Se você sabe que arquivos estão consumindo o espaço em disco, crie um script de inicialização que exclua os arquivos desnecessários e libere espaço para que a instância seja iniciada. Reinicie a instância para que o script seja executado e limpe os arquivos. Tenha cuidado para usar o comando correto e excluir os arquivos corretos. Depois que a instância iniciar e você conseguir se conectar a ela via SSH, configure o item de metadados startup-script novamente para que ele não continue a excluir os arquivos.
    • Consulte o guia de solução de problemas para obter informações sobre como acessar o disco da instância.
  • As permissões no diretório $HOME ou $HOME/.ssh do usuário que está se conectando estão erradas. O Google Daemon precisa ser capaz de armazenar a chave SSH pública no arquivo $HOME/.ssh/authorized_keys para o usuário que está se conectando. O diretório $HOME/.ssh deve ter as permissões 0700 do Unix e o arquivo authorized_keys deve ter as permissões 0600 do Unix. Os dois devem ser de propriedade do usuário. Configurações erradas de permissões ou propriedade podem causar problemas de conectividade. Para solucionar esse problema, altere o nome de usuário para um novo para que o novo usuário e o diretório principal dele sejam criados. Em seguida, use o novo usuário para se conectar e corrija problemas de permissão para os diretórios existentes do usuário.

Copiar/Colar

É possível copiar e colar texto usando os atalhos de teclado compatíveis com seu navegador e sua plataforma (Ctrl+C/Ctrl+V no Windows e no Linux e Cmd+C/Cmd+V no macOS).

Rolagem

É possível rolar o terminal usando a roda do mouse ou o trackpad. Como alternativa, as teclas de atalho Ctrl-Shift-PageUp/Ctrl-Shift-PageDn rolam o terminal no Windows e no Linux, e as teclas Fn-Shift-Up/Fn-Shift-Down rolam o terminal no macOS.

Nome de usuário do login

Por padrão, um nome de usuário para sessões SSH é gerado do endereço de e-mail conectado à conta, omitindo as informações de domínio. Por exemplo, se um e-mail é jane.doe@gmail.com, o nome de usuário correspondente seria jane_doe.

Você pode alterar o nome de usuário de dentro de uma janela SSH seguindo estas instruções:

  1. Conecte-se a uma instância de máquina virtual.
  2. No canto superior direito da janela “SSH”, clique no ícone Configurações Ícone Configurações.
  3. Selecione Alterar nome de usuário do Linux.
# This will overwrite files in the target directory, so be careful.
$ sudo cp -r /home/jane_doe_gmail_com/. /home/jane_doe
$ sudo chown -R jane_doe:jane_doe /home/jane_doe

Se preferir, altere o nome de usuário para o mais antigo usando a opção Alterar nome de usuário do Linux descrita acima e escolhendo o nome de usuário mais antigo, como jane_doe_gmail_com.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine