Exclusivo para visitantes do nosso blog: ganhe 3 meses adicionais grátis + 10% de desconto no plano trimestral. YSBLOG10
Agarre o negócio

O que é a SSH Em um servidor Linux? Como proteger o acesso remoto ao Linux?

SSH em um servidor Linux é um protocolo seguro e criptografado (Secure Shell) usado para acesso remoto, managee transfere arquivos entre sistemas. Ele substitui métodos inseguros como o Telnet, usando criptografia de chave pública e cifras fortes. SSHOs administradores podem fazer login, executar comandos, automatizar tarefas, encaminhar tráfego e administrar servidores com segurança em qualquer rede.

Se você manage infraestrutura, compreensão SSH Em ambientes de servidor Linux, é essencial. Neste guia, você aprenderá o quê SSH Ou seja, como funciona, como instalar e usar, e como reforçar a segurança para produção.

Compartilharei passos práticos, dicas testadas e comprovadas, e as melhores práticas de segurança, com base em mais de 12 anos de experiência trabalhando com hospedagem, nuvem e servidores Linux.

O que é a SSH e como funciona?

SSH O Secure Shell (Secure Shell) é um protocolo de rede criptográfico que fornece login remoto seguro e execução de comandos. No Linux, ele é normalmente implementado pelo OpenStorage.SSH. SSH consiste em um daemon de servidor (sshd) que escuta em uma porta (padrão 22) e um cliente (ssh) você executa a partir da sua máquina local.

O que é SSH e como funciona
  • Criptografia: Estabelece um canal seguro usando chaves assimétricas durante o handshake e, em seguida, alterna para cifras simétricas rápidas.
  • Autenticação: Valida usuários por meio de senhas, chaves públicas (recomendado) ou métodos de autenticação multifatorial.
  • Integridade: Garante que os dados não sejam adulterados usando MACs (códigos de autenticação de mensagens).
  • Extensibilidade: suportes SFTP/SCP para transferência de arquivos e tunelamento para encaminhamento de portas.

Porque SSH Questões para Administração de Servidores

  • Shell remoto seguro: Executar comandos, editar configurações e manage Serviços de qualquer lugar.
  • Transferência de arquivo: Uso SFTP/SCP para uploads/downloads e backups criptografados.
  • Automação: CI/CD, Ansible e uso de scripts SSH Chaves para acesso sem senha.
  • Tunelamento: Exponha com segurança serviços internos (bancos de dados, painéis de controle) sem acesso público.
  • Auditoria e controle: Centralizar o acesso, restringir usuários e registrar atividades.

Ubuntu / Debian

sudo apt update
sudo apt install -y openssh-server
sudo systemctl enable --now ssh
sudo systemctl status ssh

RHEL/CentOS/Rocky/AlmaLinux

sudo dnf install -y openssh-server
sudo systemctl enable --now sshd
sudo systemctl status sshd

Permitir SSH no seu firewall:

# UFW (Ubuntu/Debian)
sudo ufw allow 22/tcp
sudo ufw enable

# firewalld (RHEL family)
sudo firewall-cmd --permanent --add-service=ssh
sudo firewall-cmd --reload

Primeiro contato e essencial SSH comandos

Substituir user com o usuário do seu servidor e server com o endereço IP ou nome do host. A primeira conexão solicitará que você confie na impressão digital da chave do host — verifique-a por meio do seu provedor ou console antes de aceitar.

# Basic login
ssh user@server

# Custom port
ssh -p 2222 user@server

# Use a specific private key
ssh -i ~/.ssh/id_ed25519 user@server

# Copy files
scp file.txt user@server:/var/www/
scp -r site/ user@server:/var/www/site/

# SFTP interactive session
sftp user@server

# Rsync over SSH (efficient sync/backup)
rsync -avz -e "ssh -p 22" ./localdir/ user@server:/backup/localdir/

SSH Principais funções: Gerar, Implantar e Gerenciar

A autenticação baseada em chave é o padrão ouro. Ela oferece segurança robusta e permite o login sem senha. Prefira chaves Ed25519 para configurações padrão modernas e seguras.

# Generate a key pair (use a strong passphrase when prompted)
ssh-keygen -t ed25519 -C "you@example.com"

# Deploy your public key to the server (easiest method)
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server

Implantação manual (quando ssh-copy-id (não está disponível):

mkdir -p ~/.ssh && chmod 700 ~/.ssh
cat ~/id_ed25519.pub >> ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorized_keys

Utilize um agente para armazenar em cache as chaves descriptografadas durante uma sessão:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Organize vários servidores com uma configuração por host para simplificar os comandos:

# ~/.ssh/config
Host prod-web
  HostName 203.0.113.10
  User ubuntu
  Port 22
  IdentityFile ~/.ssh/id_ed25519

Host db-internal
  HostName 10.0.1.10
  User ec2-user
  ProxyJump prod-bastion

Host prod-bastion
  HostName 203.0.113.20
  User ec2-user

Endurecimento SSH para produção

As configurações de segurança padrão variam de acordo com a distribuição. Revise e reforce as suas. /etc/ssh/sshd_confige depois recarregue SSHMantenha sempre uma segunda sessão aberta ao aplicar alterações para evitar bloqueios.

# Common secure baseline (adjust to your environment)
Port 22
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
AllowUsers ubuntu deploy
MaxAuthTries 3
LoginGraceTime 20
ClientAliveInterval 300
ClientAliveCountMax 2
X11Forwarding no
UsePAM yes
# Reload safely (Ubuntu/Debian)
sudo systemctl reload ssh

# Reload safely (RHEL family)
sudo systemctl reload sshd

Você deve alterar a porta padrão?

Alterar a porta 22 para uma porta alta e incomum reduz o ruído de bots e o spam de logs, mas não substitui medidas de segurança reais. Se você fizer essa alteração, ajuste os firewalls e, no caso do SELinux, atribua um rótulo à nova porta.

# Example SELinux label for custom port 2222
sudo semanage port -a -t ssh_port_t -p tcp 2222

Desativar login de root

Use um usuário sem privilégios de root com sudo. Isso reduz o impacto e melhora a auditabilidade.

Impor logins baseados em chave

Desativar senhas em sshd_config com PasswordAuthentication noVerifique se pelo menos uma chave funcional foi verificada antes de ativar ou desativar essa opção em produção.

Limitar quem pode iniciar sessão

Uso AllowUsers or AllowGroups e restrinja por IP no firewall. Considere um host bastion e o ProxyJump para servidores internos.

Ataques de Limitação de Taxa e Bloqueio

O Fail2ban detecta falhas repetidas e bloqueia automaticamente os IPs infratores.

sudo apt install -y fail2ban   # or dnf install fail2ban
sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

Mantenha abertoSSH Atualização do

Aplique atualizações de segurança regularmente. Para ambientes de alta segurança, considere SSH Certificados, chaves de hardware (FIDO2) e MFA via PAM (por exemplo, Google Authenticator ou Duo).

SSH Construção de túneis e agenciamento portuário

O tunelamento é uma ferramenta poderosa para acessar serviços internos com segurança, sem expô-los à internet.

  • Encaminhamento local (-L): Aceda a um serviço remoto localmente.
  • Encaminhamento remoto (-R): Exponha seu serviço local ao servidor remoto.
  • Encaminhamento dinâmico (-D)Crie um proxy SOCKS para rotear o tráfego do aplicativo via SSH.
# Local: connect to remote DB at localhost:5432
ssh -L 5432:127.0.0.1:5432 user@server

# Remote: share local web app at remote:8080
ssh -R 8080:127.0.0.1:80 user@server

# Dynamic: start SOCKS proxy at local port 1080
ssh -D 1080 user@server

guia de solução de problemas SSH Rapidamente

  • Permissão negada (chave pública): Verificar permissões de arquivo (~/.ssh (se a chave privada for 700 e a chave privada 600), certifique-se de que a chave correta está sendo usada e verifique. authorized_keys conteúdo e propriedade.
  • Conexão recusada/tempos limite excedidos: Confirmar sshd Está em execução e escutando; verifique os firewalls e os grupos de segurança.
  • A verificação da chave do host falhou: A chave do servidor foi alterada. Verifique fora da banda e atualize. ~/.ssh/known_hosts se for legítimo.
  • Depurar com detalhes: ssh -vvv user@server para analisar as principais negociações e os seus fracassos.
# Is sshd listening?
sudo ss -tlpn | grep sshd

# Logs
sudo journalctl -u ssh -f        # Debian/Ubuntu
sudo journalctl -u sshd -f       # RHEL/CentOS/Rocky/Alma

Lista de verificação de práticas recomendadas

  • Use chaves Ed25519 com senhas fortes; manage com ssh-agent.
  • Desative o login de root e a autenticação por senha.
  • Restrinja o acesso por usuário/grupo e no firewall; considere o uso de um host bastion.
  • Ative o Fail2ban ou equivalente; monitore os registros e alertas.
  • Mantenha abertoSSH e pacotes do sistema operacional atualizados; rotacione as chaves regularmente.
  • Uso SSH Configuração para consistência; marque hosts, defina portas e identidades.
  • Utilize o encaminhamento de portas em vez de expor serviços internos publicamente.
  • Faça backup das configurações críticas: /etc/ssh/sshd_config, chaves autorizadas e ~/.ssh/config.

Cenários e dicas do mundo real

  • Implantações de CI/CD: Crie um dedicado deploy usuário com permissões limitadas e um específico SSH chave.
  • Frotas multicloud: Use um bastião (host de salto) com ProxyJump e políticas-chave por ambiente.
  • Necessidades de conformidade: Ative o registro detalhado de logs, centralize os logs e imponha a autenticação multifator (MFA) para acesso privilegiado.
  • Ambientes compartilhados: Uso AllowGroups e chaves exclusivas por usuário; nunca compartilhe chaves privadas.

FAQs:

Qual é a diferença entre SSH, SFTPE a SCP?

SSH é o protocolo de login remoto seguro. SFTP é um subsistema de transferência de arquivos que funciona sobre SSH, oferecendo transferências interativas e com possibilidade de retomada. O SCP também funciona em SSH mas é mais simples e menos flexível que SFTPMuitos administradores preferem o rsync ao SSH para uma sincronização eficiente.

Está mudando o SSH Porta necessária para segurança?

Não. Alterar a porta reduz o ruído de bots, mas não impede ataques direcionados. É uma medida de segurança menor. A verdadeira segurança vem da autenticação somente com chave, desativação do root, restrições de firewall, limitação de taxa, MFA e atualizações regulares.

Como faço para corrigir o erro “Permissão negada (chave pública)”?

Certifique-se de que a chave correta está sendo usada (-i or ~/.ssh/config), verificar ~/.ssh permissões (700) e chave privada (600), confirme se sua chave pública existe em ~/.ssh/authorized_keys com a devida propriedade e verifique os registros do servidor. Tente. ssh -vvv Para obter informações detalhadas sobre a negociação.

Como posso permitir? SSH Apenas de IPs específicos?

Utilize seu firewall. Por exemplo, com o UFW: sudo ufw allow from 203.0.113.5 to any port 22 proto tcpPara configurações mais abrangentes, restrinja o acesso nos seus grupos de segurança na nuvem ou firewall de borda e, opcionalmente, combine-os com um host bastion.

Eu posso usar SSH no Windows?

Sim. O Windows 10/11 inclui um recurso AbrirSSH cliente (ssh) no PowerShell. Alternativas com interface gráfica, como PuTTY e WinSCP, funcionam bem. O Subsistema Windows para Linux (WSL) também fornece um ambiente Linux nativo com OpenSSH ferramentas.

Compartilhar via:

Sanjeet Chauhan

Sanjeet Chauhan é um blogueiro e especialista em SEO dedicado a ajudar sites a crescerem organicamente. Ele compartilha estratégias práticas, dicas acionáveis ​​e insights para impulsionar o tráfego, melhorar o posicionamento nos mecanismos de busca e maximizar a presença online.

Deixe um comentário

O seu endereço de e-mail não será publicado. Os campos obrigatórios são marcados com *

Voltar ao Topo