Como cadastrar chaves SSH no servidor

em Artigos.

A geração/cadastro de chaves só deve ser feita se sua hospedagem for Linux. Para hospedagens em Windows, você deverá acessar o terminal remoto com seu usuário e senha.

Para computadores Linux, Mac, BSD e demais sistemas Unix

– Criando o par de chaves (chave pública e privada)

Abra o terminal de seu computador e aplique o seguinte comando:

ssh-keygen –t rsa

Este comando irá solicitar o caminho em que será salvo o par de chaves (Enter file in which to save the key (/home/nome-do-usuario/.ssh/id_rsa)). Esse é o caminho padrão em que serão salvos os arquivos. Você pode teclar Enter e prosseguir.

Depois disso, ele perguntará se você deseja criar uma senha (Enter passphrase (empty for no passphrase)). Caso você cadastre uma senha nesta fase, toda vez que tentar se conectar ao servidor remoto, você deverá digitar a senha cadastrada. Portanto, para facilitar o processo, deixe essa senha em branco. Para deixar a senha em branco, basta teclar Enter duas vezes.

Então, o par de chaves será salvo na pasta selecionada.

Salvando a chave pública no servidor remoto

Agora, para conseguir acessar o servidor remoto com as chaves geradas, você deve salvar a chave pública no servidor remoto. Primeiro, mova a chave para o servidor:


scp ~/.ssh/id_rsa.pub usuario@servidor:~/

O comando acima irá fazer uma cópia da chave pública gerada anteriormente para a pasta principal do seu usuário no servidor remoto. Caso você nunca tenha acessado o servidor remoto por meio de um comando SSH, o sistema pedirá para você adicionar o novo endereço na lista de domínios conhecidos.

Depois disso, o sistema irá pedir que você realize o login. Para isso, você deverá informar usuário e senha.

Agora, você deverá transferir o arquivo para o local correto no servidor remoto.

Realize o login padrão por SSH: ssh usuario@servidor

Em seguida, digite a senha….

Verifique se a pasta .SSH está criada no servidor. Use algum comando para listar o diretório, tal como ls. Caso não exista a pasta .SSH, você deverá criá-la. A pasta SSH deverá ter a permissão 700.


mkdir .ssh

chmod -R 700 .ssh

Caso você tenha criado a pasta .SSH ou ela já exista, insira o conteúdo do arquivo de chave pública no arquivo responsável por guardar as chaves de acesso. Para isso, basta digitar:


cat id_rsa.pub >> .ssh/authorized_keys

Acessando sem necessidade de senha

Após isso, basta desconectar de sua conexão remota (digitando CTRL+D) e realizar a conexão por SSH: ssh usuario@servidor

O servidor remoto não irá mais solicitar que você insira a senha para o acesso.

Para computadores Windows

Para computadores Windows (enquanto não houver bash nativo no Windows 10), é preciso baixar um programa para realizar o acesso ao terminal. Para isso, use o git-bash do Git for Windows.

Ao acessar a página https://git-scm.com/download/win o site irá realizar o download da versão recomendada para sua versão do Windows. Depois, basta seguir, clicando Next, Next e Finish (fluxo padrão do Windows).

Depois, basta ir em sua Área de Trabalho e abrir o ícone Git-Bash. Criando o par de chaves (chave pública e privada) com o Git-bash aberto, rode o seguinte comando:


ssh-keygen –t rsa

O comando, então, irá solicitar o caminho onde será salvo o par de chaves (Enter file in which to save the key (/c/Users/nome-do-usuario/.ssh/id_rsa)). Esse é o caminho padrão onde serão salvos os arquivos. Então, você pode digitar Enter e prosseguir.

Depois, vai ser perguntado se você deseja criar uma senha. (Enter passphrase (empty for no passphrase)). Caso você digite uma senha nessa fase, toda vez que tentar conectar no servidor remoto, você deverá digitar a senha escolhida. Portanto, para facilitar deixe essa senha em branco. (Para deixar a senha em branco basta teclar Enter duas vezes).

Então, o par de chaves será salvo na pasta designada.

Salvando a chave pública no servidor remoto

Agora, para conseguirmos acessar o servidor remoto através das chaves geradas, devemos salvar a chave pública no servidor remoto. Primeiro, movemos a chave para o servidor:


scp ~/.ssh/id_rsa.pub usuario@servidor:~/

O comando acima irá fazer uma cópia da chave pública gerada anteriormente para a pasta principal do seu usuário no servidor remoto. Caso você nunca tenha acessado o servidor remoto por meio de um comando SSH, o sistema pedirá para você adicionar o novo endereço na lista de domínios conhecidos.

Depois, o sistema irá pedir que você realize o login. Informe o seu usuário e a senha. O arquivo irá ser transferido. Agora, você deverá transferir o arquivo para o local correto no servidor remoto.

Realize o login padrão por SSH: ssh usuario@servidor

Em seguda, digite a senha.

Verifique se a pasta .SSH está criada no servidor. Use algum comando para listar o diretório, como, pr exemlo, ls.

Caso a pasta .SSH não tenha sido criada, você deverá criá-la. A pasta .SSH deverá ter a permissão 700


mkdir .ssh

chmod -R 700 .ssh

Caso você tenha criado a pasta .SSH ou ela já existia, devemos inserir o conteúdo do arquivo de chave pública no arquivo responsável por guardar as chaves de acesso. Para isso, basta digitar:


cat id_rsa.pub >> .ssh/authorized_keys

O comando acima irá colocar os dados da chave pública no final do arquivo authorized_keys, ou seja, se você tiver cadastrado outra chave pública no seu servidor, não haverá problema.

Acessando sem necessidade de senha

Depois, basta sair da conexão remota (digitando Ctrl+d) e tentar realizar a conexão por SSH: ssh usuario@servidor

O servidor remoto não irá mais solicitar a senha para o acesso.