CodeGym /Cursos /Docker SELF /Introdução ao SSH: configuração de acesso remoto, uso de ...

Introdução ao SSH: configuração de acesso remoto, uso de chaves

Docker SELF
Nível 4 , Lição 3
Disponível

Introdução ao SSH: configuração de acesso remoto, uso de chaves

1. O que é SSH?

Imagina que você está em uma ponta do planeta, e o servidor que você precisa configurar está na outra ponta. Trabalhar como aquele técnico de TI da escola, correndo de sala em sala, definitivamente não é o que queremos. Felizmente, temos o SSH (Secure SHell), uma ferramenta para gerenciar servidores remotamente.

SSH é um protocolo de rede que permite conexões seguras com computadores remotos. A conexão acontece usando criptografia, o que significa que os dados transmitidos estão protegidos de olhares curiosos. O SSH substitui métodos antigos como o Telnet, que transmitia dados de forma aberta (tipo aquele cartão postal dos Correios).

Vantagens do SSH

  1. Segurança. O SSH usa criptografia, protegendo os dados contra interceptações.
  2. Flexibilidade. Gerenciamento remoto de servidores, transferência de arquivos, criação de túneis — tudo isso disponível via SSH.
  3. Compatibilidade entre plataformas. Funciona em Linux, Windows (incluindo no WSL) e MacOS.

Agora que você já entende por que o SSH é importante, vamos para a prática.


2. Instalando o cliente SSH

Vamos começar pelo cliente, que vai permitir conectar ao servidor. Se você usa uma distribuição moderna do Linux, o cliente SSH provavelmente já está instalado. Vamos verificar:

ssh -V

Você deve ver informações sobre a versão do cliente SSH. Se o comando não for encontrado, instale ele (no Ubuntu e em outras distribuições baseadas no Debian):

sudo apt update
sudo apt install openssh-client

No MacOS, o cliente SSH já vem instalado, e se você estiver usando WSL, a instalação é semelhante ao Linux.


3. Conectando ao servidor remoto via SSH

A conexão ao servidor é feita com o comando:

ssh username@hostname
  • username — é o nome de usuário no servidor remoto.
  • hostname — é o endereço IP ou domínio do servidor.

Exemplo de conexão:

ssh student@192.168.1.10

Se tudo estiver configurado certinho, o sistema vai pedir a senha. Depois de inserir a senha, você estará no console remoto do servidor. Parabéns, você está a meio caminho de virar um "operador de vilão em filme de hackers".


4. Instalando e Configurando o Servidor SSH

Instalando o Servidor SSH

Se você está trabalhando em um servidor ou máquina local para a qual quer se conectar, precisa instalar o servidor SSH. No Ubuntu, faça assim:

sudo apt update
sudo apt install openssh-server

Verifique o status do serviço SSH:

sudo systemctl status ssh

Você deve ver uma mensagem como active (running). Se o servidor não estiver rodando, use:

sudo systemctl start ssh
sudo systemctl enable ssh

Agora o servidor SSH está pronto para aceitar conexões.


Configurando o Servidor SSH

O arquivo principal de configuração do servidor SSH é /etc/ssh/sshd_config. Para editá-lo, use qualquer editor de texto, como nano:

sudo nano /etc/ssh/sshd_config

Preste atenção nos seguintes parâmetros:

  • Port 22 — porta onde o SSH opera.
  • PermitRootLogin no — nega conexão para o root (recomendado manter no por questões de segurança).
  • PasswordAuthentication yes — permite conexão por senha.

Depois de alterar os parâmetros, reinicie o servidor SSH:

sudo systemctl restart ssh

5. Usando autenticação por chave

Conexão por senha é prática, mas não é segura. A melhor opção é usar chaves SSH.

Gerar chaves SSH

Na máquina cliente, rode o comando:

ssh-keygen

O script vai pedir um caminho para salvar a chave (padrão é ~/.ssh/id_rsa). Dá pra apertar Enter para aceitar. Depois ele vai perguntar pela frase de senha. Melhor deixar vazio pra simplificar (mas não é tão seguro).

Depois de rodar o comando, os arquivos das chaves serão criados:

  • id_rsa — chave privada (não compartilhe isso, como o código-fonte do seu projeto antes de lançar, especialmente se estiver cheio de "dívidas").
  • id_rsa.pub — chave pública (essa pode ser usada pra conexão).

Enviar a chave para o servidor

Use o comando ssh-copy-id para enviar a chave pública para o servidor:

ssh-copy-id username@hostname

Isso vai adicionar sua chave pública no arquivo ~/.ssh/authorized_keys no servidor. Agora você consegue se conectar sem senha.

Tente:

ssh username@hostname

Se tudo deu certo, não vão pedir senha. Sua vida oficialmente ficou um pouco mais fácil.

SSH e WSL

Se você estiver no Windows usando o WSL, dá pra usar SSH também. Abra o terminal do WSL e instale o cliente SSH:

sudo apt update
sudo apt install openssh-client

Os passos seguintes são os mesmos do Linux.


6. Parte prática: configurando o SSH no localhost

Pra praticar, você pode configurar uma conexão SSH entre duas máquinas na mesma rede ou até no seu próprio computador (usando localhost como endereço).

  1. Instale o servidor e o cliente SSH na mesma máquina.
  2. Conecte-se pelo endereço local:
ssh seu_usuario@localhost
  1. Configure a conexão por chave, como foi mostrado acima.

No final, a conexão deve ser feita sem precisar digitar a senha.


7. Trabalhando com configurações e aliases no SSH

Se você se conecta frequentemente a diferentes servidores, pode facilitar sua vida adicionando uma configuração SSH no arquivo ~/.ssh/config:

Host myserver
    HostName 192.168.1.10
    User student
    IdentityFile ~/.ssh/id_rsa

Agora você pode se conectar simplesmente com o comando:

ssh myserver

Erros comuns e como corrigi-los

  1. Erro "Connection refused". Isso significa que o servidor SSH não está executando na máquina remota. Verifique se ele está instalado e em execução.

  2. Erro "Permission denied". Ou você digitou a senha errada ou as chaves não estão configuradas corretamente. Verifique o conteúdo do arquivo ~/.ssh/authorized_keys no servidor.

  3. Erro "No route to host". Verifique se o servidor está acessível pela rede (use o comando ping).


Agora você tá equipado com conhecimento sobre como configurar o SSH, usar chaves e evitar problemas comuns. Essa é uma ferramenta poderosa usada em todos os lugares, seja configurando servidores no trabalho ou gerenciando um Raspberry Pi em casa.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION