Configurar chave SSH no Linux com o PuTTY (Windows)

Ler no Celular
chave SSH no Linux

Segurança é algo essencial quando falamos de servidores, independente do sistema operacional utilizado, manter politicas de senhas adequadas, com certo nível de complexidade é essencial para qualquer sistema de dados sensíveis.

Root (super usuário) ou super utilizador é uma conta de usuário especial usada para a administração de sistemas baseados no Unix. (Wikipedia)

Não recomendo a utilização do usuário “root” regularmente, configure uma conta de super usuário alternativa para executar tarefas regulares.

Podemos concordar que lidar com senhas complexas e diferentes para cada serviço, aplicação ou no caso deste post, servidores, se torna confuso e por vezes cansativos.

Se tratando de Linux, a autenticação baseada em SSH com chave de criptografia, torna toda gestão mais simples e segura, pois permite você acessar um ou mais servidores sem a necessidade de ficar digitando senhas complexas ou diferentes para cada servidor.

Veremos agora, como tornar seu acesso SSH muito mais seguro e descomplicado. Mostrarei também algumas configurações adicionais, aplicando camadas extras de segurança em sua autenticação SSH.

1. Criar um usuário com privilégio Sudo

Para configurar um novo usuário, você precisa ter acesso ao terminal do seu servidor, se você utiliza DigitalOcean, Vultr ou qualquer outro provedor, poderá acessar através do próprio painel de controle.

Criar novo usuário

sudo adduser novousuario

Você será solicitado a informar uma senha e algumas informações de contato, basta preencher e pressionar OK para cada opção.

Conceder privilégios de super usuário

sudo usermod -aG sudo novousuario

Sair do terminal e retornar ao Windows

$ logout

2. Baixe e instale o PuTTY

Para facilitar, utilizaremos o PuTTY como nosso cliente SSH, o download pode ser realizado em https://www.putty.org/. A instalação já incluí o utilitário PuTTYgen, responsável por gerar as chaves SSH (Formato “.ppk”).

3. Gerar chaves SSH com o PuTTYgen

Em seu Windows, localize e execute o utilitário “PuTTYgen”…
Após executar, bastar clicar em “Generate” e movimentar aleatoriamente o ponteiro do mouse dentro da janela Key. Mantenha as opções padrões da aplicação.

puttygen-gerar-chave-ssh-464532

Copie e salve em um local seguro toda chave RSA extensa gerada acima, essa é a chave publica e utilizaremos ela no terminal mais adiante.

Adicione um comentário “Key Comment“, que pode ser o nome do seu usuário.

Opcionalmente, crie uma senha “Key passphrase“. A senha protege sua chave para o caso dela cair em mãos erradas, garantindo uma camada extra de segurança contra uso indevido, ela funciona como uma senha Mestre e será a mesma para qualquer servidor que utilize essa chave SSH, apesar de opcional eu recomendo fortemente seu uso.

Clique em “Save public key” e “Save private key” para salvar suas chaves, escolha um local seguro para elas. Utilizaremos a “private key” no PuTTY mais adiante.

4. Instalar Chave SSH no servidor LINUX

Precisaremos colar a chave publica gerada acima em nosso arquivo “authorized_keys”. Faça login novamente em seu servidor através do SSH utilizando a nova conta com privilégios sudo que criamos no inicio deste post.

Crie um novo diretório .ssh

sudo mkdir ~/.ssh

Observe que  ~/ é uma abreviação para o diretório inicial do usuário atualmente conectado, geralmente em /home/username/

Restringir Permissões

sudo chmod 700 ~/.ssh

Criar o arquivo “authorized_keys” na pasta “.ssh”

sudo nano ~/.ssh/authorized_keys

O comando nano irá abrir um arquivo em branco. Certifique-se de ter sua chave pública, copiamos ela na etapa 3.

Cole a chave pública clicando com o botão direito do mouse uma vez em qualquer lugar do arquivo em branco.

Uma vez que a chave for colada, você poderá usar a seta para a esquerda no teclado, movendo o cursor até o final para ter certeza de que colou a chave inteira.

Salvar e fechar (pressione CTRL+ X, depois pressione ENTER para confirmar e salvar)

Restringir permissões do arquivo “authorized_keys”

sudo chmod 600 ~/.ssh/authorized_keys

Definir recursivamente o proprietário “$(whoami)”

Variável retorna o usuário atualmente conectado.

sudo chown -R $(whoami):$(whoami) ~/.ssh/

Concluímos aqui o processo de configuração da Chave SSH para um novo usuário com privilégios sudo.

logout

Se você quiser adicionar novas chaves para outros usuários, simplesmente faça o login com o usuário desejado e repita os passos 3 e 4.

Ou, se você for um usuário com privilégios sudo, simplesmente substitua o “~/” com o diretório pessoal do usuário, exemplo /home/nomedeusuario e substitua “$(whoami)” pelo nome de usuário.

Exemplo prático de substituição (Siga etapas 3 e 4):

sudo nano /home/vitorfaustino/.ssh/authorized_keys
sudo chown -R vitorfaustino:vitorfaustino /home/vitorfaustino/.ssh/

5. Configurar PuTTY com Chave SSH

Em seu Windows, localize e execute o utilitário “PuTTY

No menu lateral esquerdo, clique em “Connection” para expandir, em seguida clique em “Data“.

Em “Auto-login username” preencha com seu usuário de conexão automática. (Neste exemplo, o usuário que criamos no passo 1)

putty-connection-data-25254

Ainda no menu lateral “Connection” agora clique em “SSH” para expandir, em seguida clique em “Auth” e localize em seu computador a chave privada que salvamos no passo 3.

putty-connection-ssh-auth-53563

Ainda no menu lateral , clique sob a primeira opção “Session“, digite o IP do seu servidor, um nome para identificação do seu servidor e clique em salvar.

putty-configure-session-2345245

Para finalizar, clique em “Open” para iniciar a conexão com seu servidor.

Se você salvou sua chave SSH com uma senha (Passo 3), será necessário informa-la a cada novo acesso SSH.

ssh conexao senha chave 635633

Se você ver “Authenticating with public key” você configurou a autenticação baseada em chave com sucesso! Parabéns.

Recomendações de Segurança adicionais

6. Desativar a autenticação SSH através de senha

Agora que já temos usuários configurados com acesso SSH através de chaves, podemos desativar o acesso por senha, dessa forma, seu servidor aceitará apenas conexões SSH que estejam utilizando Chaves autorizadas.

Acesse seu terminal SSH como “root” ou algum usuário com privilégios sudo.

Editar arquivo de configuração do SSH

sudo nano /etc/ssh/sshd_config

Localize a linha iniciada por “PasswordAuthentication” ela pode estar comentada com um “#” antes, remova este comentário e defina o valor como “no” ao final da linha. Exemplo:

PasswordAuthentication no
passwordauthentication-no-ssh-linux-3423542

Salvar e fechar (pressione CTRL+ X, depois pressione ENTER para confirmar e salvar)

Para que as alterações sejam aplicas, será necessário reiniciar o serviço

sudo service ssh restart

Desta forma, desativamos o login SSH através de senhas.
Lembre-se, atualize as configurações do Putty para que o novo acesso seja realizado através da Chave SSH configurada anteriormente, pois conexões por senha não serão mais aceitas.

7. Alterar porta padrão do SSH (22)

Uma questão de segurança muito importante, é alterar a porta padrão do SSH (22) para um porta aleatória disponivel, esse processo é recomendado, se não houver interesse pule para o próximo passo.

Importante: Antes de alterar a porta SSH, realize um Snapshot do seu servidor e confirme se seu servidor possui um firewall para liberar a porta desejada antes de realizar o procedimento abaixo. RISCO DE SER TRANCADO PARA FORA DO SERVIDOR caso o firewall esteja bloqueando a nova porta.

Editando a configuração do SSH

sudo nano /etc/ssh/sshd_config 

Localize a linha Port 22 e altere para porta 43000 ou qualquer porta de sua preferência.
Observação, se a linha estiver dessa forma #Port 22, remova o comentário #.

Reiniciar o SSH

sudo service sshd restart

Será necessário desconectar e se conectar novamente alterando a porta no Putty para a porta configurada no arquivo, no caso aqui a 43000.

Compartilhe este conteúdo

Tags do conteúdo