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 [email protected]
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 [email protected]
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