SSH do navegador

Com o SSH do navegador, é possível usar o SSH para se conectar a uma instância de máquina virtual (VM, na sigla em inglês) do Compute Engine no Console do Google Cloud Platform. Não é preciso instalar extensões do navegador nem outro software para usar esse recurso. O SSH do navegador é uma alternativa a outros métodos de conexão a uma instância.

Como conectar-se a uma instância de VM do Linux

O Google Compute Engine gerencia as chaves SSH sempre que você se conecta 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 conectar-se a partir do navegador é controlado pelos papéis do Cloud Identity and Access Management. Os membros e papéis de IAM de 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 administrador de instância do Compute do projeto. Se for possível executar a instância uma conta de serviço, também será necessário que você seja 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ê.

Após o acesso concedido, conecte-se a uma instância do Linux diretamente do seu navegador da Web no Console do GCP:

  1. No Console do GCP, acesse a página Instâncias de 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, use o terminal para executar comandos na instância do Linux. Quando você terminar de usar a instância, desconecte-a usando o comando exit.

Ambientes compatíveis

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

  • Navegadores da Web. versão mais recente do Google Chrome, Firefox, Microsoft Edge, Microsoft Internet Explorer 11 e posterior e Safari 8 e posterior. Não há compatibilidade com Safari em modo de navegação privada.
  • Configurações de máquina virtual. todas as imagens de VM do Linux disponíveis de maneira nativa no Google Cloud Platform (GCP).

Problemas conhecidos

  • Latência de inicialização. o tempo de conexão atual usando o SSH do navegador é de 5 a 30 segundos. As versões atuais do ambiente convidado são compatíveis com conexões mais rápidas.

  • Novas instâncias de VM não ficam disponíveis imediatamente. Novas instâncias levam 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 o ciclo de vida da 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 que não têm endereço IP externo. Se a instância do Compute Engine tiver apenas um endereço IP interno, use uma das opções de conexão a seguir:

    • SSH do navegador com encaminhamento de TCP por meio do Cloud Identity-Aware Proxy. Se uma instância sem IP externo for configurada para permitir o tunelamento de TCP por meio do Cloud IAP, também será possível conectar-se à instância usando o SSH do navegador.

    • SSH do navegador com Bastion Host. Para usar essa opção, as instâncias de destino e bastion precisam estar na mesma rede VPC ou em redes VPC conectadas.

      Para se conectar usando SSH do navegador com um bastion host, siga estas etapas:

      1. Use o SSH do navegador para se conectar a uma instância bastion que tem um endereço IP externo. Esta etapa gera um par de chaves SSH temporárias e faz o upload da chave pública para os metadados do projeto ou da instância do Bastion Host.
      2. A partir da instância bastion, conecte-se à instância de destino que tem apenas um endereço IP interno. Para se conectar à instância de destino a partir da instância bastion, execute o comando a seguir:

        ssh -A [INTERNAL_IP]
        

        em que [INTERNAL_IP] é o endereço IP interno da instância de destino. Para usar a chave temporária gerada na primeira etapa, é necessário executar esse comando dentro de aproximadamente dois minutos depois de se conectar à instância bastion.

  • 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 ao sistema de destino. Para enviar esses ou outros atalhos, clique no ícone de 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 aprimora a experiência de console para o SSH do navegador e do Cloud Shell. Para isso, concede acesso direto aos atalhos de teclado normalmente reservados pelo navegador, como Ctrl+W.

  • A transferência de arquivos grandes pode ser lenta. Recomendamos usar o gcloud compute scp para transferir arquivos grandes.

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

Esse erro pode aparecer nas seguintes condições:

  • A instância está inicializando e o sshd ainda não está em execução. Verifique se a inicialização da instância foi concluída antes de tentar novamente.

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

  • O sshd está escutando em uma porta diferente da que você está se conectando. Por padrão, o SSH do navegador se conecta à instância na porta 22. Se você estiver executando o sshd em uma porta personalizada, conecte-se a ela usando o item "Abrir na janela do navegador na porta personalizada" na lista suspensa do botão SSH.

  • Não há regra de firewall que permita o acesso SSH pela porta. Por padrão, o acesso SSH na porta 22 é ativado em todas as instâncias do Compute Engine. Se você desativou o acesso, o SSH do navegador não funcionará. Se você executar o sshd em uma porta diferente da 22, precisará ativar o acesso a essa porta usando uma regra de firewall personalizada.

  • 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 do intervalo de endereços IP do Google, que pode ser recuperado por meio de registros SPF públicos.

  • A instância está desligada. Verifique se a instância está em execução. Para informações sobre como solucionar problemas de uma instância não íntegra, consulte Dicas gerais para usar o Compute Engine.

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

  • A instância pode não estar executando o ambiente convidado. Verifique se o ambiente para convidado está instalado e em execução.

  • O disco de inicialização da instância não tem mais espaço livre. Quando a conexão é estabelecida, o ambiente para convidado atualiza o arquivo ~/.ssh/authorized_keys com a chave SSH pública usada na sessão atual. Caso o disco não tenha espaço livre, a atualização falhará. Para identificar problemas de espaço em disco, verifique a saída do console serial da instância e procure por erros de falta de espaço. Veja alguns métodos que podem ser usados para resolver problemas de espaço em disco:

    • 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 quais 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 pelo SSH, defina o item de metadados startup-script novamente para que ele não continue a excluir os arquivos.
    • Para mais informações sobre como acessar o disco da instância, consulte Dicas gerais para usar o Compute Engine.
  • As permissões ou a propriedade em $HOME, $HOME/.ssh ou $HOME/.ssh/authorized_keys estão incorretas. O ambiente convidado precisa ser capaz de armazenar a chave SSH pública no arquivo $HOME/.ssh/authorized_keys para o usuário que está se conectando. Para o diretório $HOME, defina as permissões Unix 0755 ou 0700. Para o diretório $HOME/.ssh, defina as permissões Unix 0700. Para o arquivo authorized_keys, defina as permissões Unix 0600. Verifique se o proprietário do diretório $HOME, do diretório $HOME/.ssh e do arquivo authorized_keys é o mesmo que o usuário conectado. Altere o nome de usuário para se conectar como um usuário diferente e corrija os problemas de permissão do usuário que não consegue se conectar.

Copiar/Colar

É possível copiar e colar texto usando os atalhos de teclado compatíveis com seu navegador e plataforma (Ctrl+C/Ctrl+V no Windows e Linux, Cmd+C/Cmd+V no macOS e Ctrl+Shift+V no Chrome OS). Em geral, esses comandos funcionam com a maioria das configurações, mas sua configuração pode apresentar resultados diferentes.

Transferir arquivos

Se você conseguir estabelecer uma conexão SSH com uma instância usando SSH na janela do navegador, é possível usar essa conexão para transferir arquivos para a instância.

Para mais informações, consulte Como transferir arquivos usando SSH no navegador.

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

Nome de usuário padrão

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 for user@gmail.com, o nome de usuário correspondente será user.

Nome de usuário padrão com o login do SO ativado

Se você tiver o login do SO ativado e um nome de usuário não for definido por um administrador do G Suite, por padrão, uma versão mais longa de nome de usuário será definida. Esse nome de usuário inclui as informações do domínio. Por exemplo, se um e-mail for user@gmail.com, o nome de usuário correspondente será user_gmail_com. Para mais informações sobre comportamentos de login no SO, consulte Comportamentos de login esperados.

Como alterar o nome de usuário padrão

É possível alterar o nome de usuário de dentro de uma janela SSH seguindo estas instruções:

  1. Conecte-se a uma instância de VM.
  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. Há um limite de 32 caracteres para o tamanho máximo do nome de login nos sistemas Linux. Portanto, os nomes de usuário padrão e configurados são truncados para não exceder esse limite.
  4. (Opcional) Copie os dados para o novo diretório base. Cada novo nome de usuário é um usuário Unix diferente, portanto, se você usou o diretório principal para armazenar quaisquer dados, poderá copiá-los para o novo diretório usando o comando cp. Por exemplo, se você alterar seu nome de usuário de user_gmail_com para user, execute os comandos a seguir:

    # This will overwrite files in the target directory, so be careful.
    $ sudo cp -r /home/user_gmail_com/. /home/user
    
    $ sudo chown -R user:user /home/user
    
Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine