SSH 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 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. 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 da Web: versão mais recente do Google Chrome, Firefox, Microsoft Edge, Microsoft Internet Explorer 11+ e Safari 8+. Não há compatibilidade com Safari em modo de navegação privada.
  • 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 no 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 ciclos de vida 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 no navegador para se conectar a instâncias que não têm um endereço IP externo. Como alternativa, use 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 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 transmitidas 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 aprimora a experiência de console para o SSH no navegador e do Google Cloud Shell. Para isso, concede acesso direto aos atalhos de teclado normalmente reservados pelo navegador, como CTRL-W.

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

Veja esse erro 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 manualmente o sshd ou configurou uma imagem personalizada que não está executando esse serviço, o SSH no 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 a ela 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. Por padrão, acesso SSH na porta 22 é ativado em todas as instâncias do Compute Engine. Se você desativou o acesso, o SSH no 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 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. Consulte este guia para mais 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 no navegador. Para verificar se o deamon está em execução, navegue até a página de saída do console serial e procure linhas de saída em que o 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á. Para diagnosticar essa condição, verifique a instância na saída do console serial e procure erros "Sem espaço livre". Veja a seguir alguns métodos usados 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 pelo 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 mais 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 precisa ter as permissões 0700 do Unix, e o arquivo authorized_keys precisa ter as permissões 0600 do Unix. Os dois precisam 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 dos diretórios do usuário atuais.

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 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.

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. Este 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 detalhes sobre os comportamentos de login do 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 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. 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 corresponde a um usuário diferente do Unix. Portanto, se você usou o diretório base para armazenar dados, será possível 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 seguintes comandos:

    # 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