O acesso de SSH utilizando a ferramenta de acesso via
navegador que o Google disponibiliza é prático em diversos casos, mas as vezes
um acesso utilizando um outro cliente SSH é necessário.
Para isto você precisa:
a) Uma máquina no VPS no Google Compute Engine com
Linux instalada. VPSGrátis no Compute Engine - Google Cloud Plataform
b) Um cliente SSH. Para Windows você pode utilizar
o PuTTY. Já o Linux e o OSX (iMac) já
possuem o cliente SSH nativos.
c) Um gerador de chaves SSH. PUTTYGEN par Windows
ou nativamente ssh-keygen para
Linux e OSX.
1.
Gerando as
chaves privadas e públicas necessárias
1.1 - Windows
a) Se você baixou o pacote de instalação completa do PuTTY para Windows, você terá instalado também o PuTTYgen. Vá até o Menu Iniciar → Todos os Programas → PuTTY → PuTTYgen
b) Criando um novo par de chaves (KEY PAR) para autenticação
Conforme a imagem anterior escolha os seguintes parâmetros:
Type of key to generate: RSA
Number of bits: 2048 → É suficiente para a maioria das pessoas.
c) Clique no botão “Generate” e comece a movimentar o mouse dentro da janela. Isto é usado para criar dados randômicos para a geração das chaves.
d) Se tudo deu certo você verá a sua chave pública na janela.
e) É interessante que você crie uma senha para o arquivo da sua chave privada, assim você pode digitar sua senha no campo “Key passphrase” e confirmar no campo “Confirm passphrase”. Em seguida clique nos botões “Save public key” e “Save private key”
1.2 - Linux / OSX
a) Abra um terminal e digite ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/user/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/user/.ssh/id_rsa.
Your public key has been saved in /home/user/.ssh/id_rsa.pub.
b) As chaves serão gravadas no diretório indicado pelo comando.
2. Acesso ao
Google Cloud Shell
2.1 - No
Dashboard do Google Cloud Plataform do
Compute Engine, https://console.cloud.google.com/compute,
clique no botão para abertura do console do Google
Cloud Shell
2.2 - O terminal Cloud Shell será apresentado.
3. Ativando ou desativando o login do sistema operacional
Existem outras maneiras de permitir o acesso SSH à sua máquina virtual VPS hospedada nos servidores do Google, mas esta maneira foi a que funcionou melhor no meu caso.
3.1 - Dento do Cloud Shell, digite
gcloud compute project-info add-metadata --metadata
enable-oslogin=TRUE
Você pode escolher também desativar este tipo de login alterando a chave enable-oslogin para FALSE.
É bom lembrar que todas as instâncias, todas as máquinas virtuais, utilizam as mesmas configurações de metadados.
Não testei ainda, mas para incluir o metadado para apenas uma instância, use o comando:
gcloud compute instances add-metadata [INSTANCE_NAME] --metadata enable-oslogin=TRUE
Onde [INSTANCE_NAME] é o nome da sua VPS.
4. Enviando a sua chave pública para o Cloud Shell
Como você irá precisar da sua
chave pública no Cloud Shell para ser enviado para a sua VPS, faça o seguinte:
4.1 - Digite no terminal do Cloud Shell o comando→ nano
id-pub, para abrir o mini editor de texto Nano.
user@projeto-xyz:~$
nano id-pub
4.2 - Copie o texto da sua chave pública no Putty (Windows)
ou direto do terminal Linux ou OSX. Cole o texto dentro do terminal do Cloud
Shell onde você está rodando o mini editor de texto Nano.
4.3 -
Com o texto colado, pressione as teclas CTRL+X para sair do mini editor e
escolha Y para gravar o arquivo.cat
4.4 - Para verificar se o arquivo foi gravado, digite o
comando → cat
id-pub
5. Enviando a sua chave pública para sua instância VPS.
5.1 - Com o terminal aberto use o
seguinte comando para enviar a chave para o seu servidor VPS.
gcloud compute os-login ssh-keys
add --key-file id-pub
5.2 - Se o comando funcionou,
você irá ver na sua tela a lista de todas as chaves públicas que estão nos seus
servidores.
5.3 - Você também pode usar o
comando a seguir para verificar qual é o nome de usuário associado à sua conta.
gcloud compute os-login describe-profile
name: [ACCOUNT_EMAIL] - e-mail da conta
posixAccounts:
:
username: [USER_NAME] - nome do usuário (Você irá usar este nome de usuário para acesso via SSH.
:
6. Acesso a sua VPS, usando um outro cliente SSH.
Primeiro você deve verificar qual
é o endereço IP externo da sua VPN
6.1 - Windows
a) Abra o PuTTY e coloque no
campo Host Name (or IP address) o nome de login do seu usuário juntamente com o
IP externo da sua máquina. O formato é o
seguinte:
login_gmail_com@123.123.123.123 -
Onde login_gmail_com é o login do seu usuário, que você descobriu no item 5.3
deste tutorial. E 123.123.123.123 é o IP externo da seu VPS.
Em
seguida, na janela do PuTTY, do lado esquerdo navegue até categoria (Category) → SSH →
Auth
b) Selecione o arquivo, Private Key, que você
criou no item 1 deste tutorial. Em seguida clique no botão OPEN.
6.2 - Linux / OSX / MACOS
Digite
no terminal o comando no seguinte formato:
ssh -i [PATH_TO_PRIVATE_KEY] [USERNAME]@[EXTERNAL_IP_ADDRESS]
Onde:
[PATH_TO_PRIVATE_KEY] é o caminho para a chave SSH privada.
[USERNAME] é o nome de usuário da
VPS que você descobriu no item 5.3 deste tutorial.
[EXTERNAL_IP_ADDRESS] é o
endereço externo da VPS.