OpenSSH: Acesso Remoto Seguro para Servidores Linux
Introdução
Na semana passada, escrevi um artigo e resolvi também gravar um vídeo para o YouTube sobre o assunto Home Server. Gostei da experiência, pois, além de ter um objetivo que me ajuda a estudar um assunto, comecei a ter mais interações com a comunidade de tecnologia.
Decidi assim, continuar por esse caminho e para dar continuidade nos tópicos que pretendo falar, como Home Sever, Linux entre outros, decidi escrever sobre algo importante que é acesso em um servidor linux de forma simples e segura, usando um servidor de SSH.
O Que é o OpenSSH?
OpenSSH é uma ferramenta amplamente utilizada para conexão remota segura entre dispositivos. Desenvolvido pelo projeto OpenBSD, ele é encontrado na maioria das distribuições Linux e é um padrão amplamente adotado pela comunidade.
Imagine um cenário onde você está em casa com seu notebook e precisa acessar um servidor na rede da empresa para monitoramento ou configuração. Com OpenSSH, você pode se conectar ao servidor remotamente sem precisar se deslocar até o local físico, desde que a porta correta esteja aberta (por padrão, a porta 22).
Conectando ao Servidor via OpenSSH
Para se conectar a um servidor via SSH, você precisa de um cliente SSH. No Linux, ele já vem instalado por padrão. Para verificar, use o comando:
which ssh
Para iniciar a conexão, basta fornecer o endereço IP do servidor:
ssh root@192.168.15.138
Na primeira conexão, você receberá um aviso perguntando se deseja confiar na chave de autenticação do servidor. Cada servidor possui um fingerprint único.
Caso queira sair da conexão, basta pressionar Ctrl + D
.
No serviço de SSH, os fingerprints das conexões anteriores, verifique o diretório:
ls ~/.ssh/known_hosts
Se esse arquivo for apagado, todas as entradas armazenadas serão removidas.
Monitorando Conexões SSH
Os logs são essenciais para identificar conexões ativas e tentativas de login. Para monitorar acessos em tempo real, use:
tail -f /var/log/auth.log
Isso permite analisar quem está conectando ao servidor e identificar possíveis tentativas de invasão.
Configuração do OpenSSH Client
Podemos simplificar a conexão usando um arquivo de configuração no diretório ~/.ssh
. Crie o arquivo config
e adicione:
ls
Host servidor
Hostname 192.168.15.138
Port 22
User root
Agora, basta digitar:
ssh servidor
Isso evita a necessidade de lembrar endereços IP, portas ou nomes de usuários para cada conexão.
Gerando Chaves SSH para Autenticação Segura
Uma maneira mais segura de se conectar via SSH é utilizando chaves públicas e privadas. Isso elimina a necessidade de digitar senhas e impede ataques de força bruta, se você desabilitar a permissão para acesso via senha. Para gerar um par de chaves:
ssh-keygen
Por padrão, as chaves serão armazenadas no diretório ~/.ssh/
como id_rsa
(chave privada) e id_rsa.pub
(chave pública).
A chave privada deve ser mantida segura e nunca compartilhada. Já a chave pública pode ser distribuída sem preocupação.
Para configurar o acesso com chaves, copie a chave pública para o servidor:
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.15.138
Se preferir, você pode fazer isso manualmente:
mkdir -p ~/.ssh
cat id_rsa.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys
Usando SSH-Agent para Evitar Repetição de Senhas
Se você adicionou uma passphrase à sua chave, precisará digitá-la a cada conexão. Para evitar isso, utilize o ssh-agent
:
eval "$(ssh-agent)"
ssh-add ~/.ssh/id_rsa
Assim, a chave será armazenada temporariamente na memória.
Configuração do OpenSSH Server
Verifique se o servidor SSH está instalado e rodando:
which sshd
systemctl status sshd
Os arquivos de configuração estão localizados em /etc/ssh/
. O arquivo principal é sshd_config
. Algumas opções importantes:
Port 22 # Alteração da porta padrão
PermitRootLogin no # Impede logins diretos como root
PasswordAuthentication no # Desabilita autenticação por senha
Após alterar a configuração, reinicie o SSH:
systemctl restart sshd
Isso melhora a segurança para seu servidor.
Conclusão
O OpenSSH é uma ferramenta essencial para qualquer administrador de sistemas. Ele permite conexão remota segura e oferece várias opções de personalização para tornar o gerenciamento de servidores mais eficiente. SSH também é bem usado para fazer servidores caseiros, para seus acessos e configurações, por isso é importante passar por ele antes de avançar e configurações mais complexas.
Se você gostou deste guia, confira meu vídeo no YouTube sobre o assunto e me diga se você além de usar o SSH de forma mais básica, também usar opções mais avançadas, usando como proxy, redirecionamento de portas, entre outros. https://www.youtube.com/watch?v=rxJaC59d9sc